首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用鼠标输入事件高亮显示多边形

使用鼠标输入事件高亮显示多边形
EN

Stack Overflow用户
提问于 2011-05-24 06:36:45
回答 2查看 1.2K关注 0票数 1

我是Java Swing的新手,我正在做一项任务。我的组件上有一些多边形。当我进入一个多边形时,它必须高亮显示(即用某种颜色填充)。

当我转到下一个多边形时,它必须高亮显示,前一个多边形应该被擦除(即正常状态)。我找到了一些例子,但它们使用的是“鼠标按下”事件,但我的是不同的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-24 07:03:27

你读过Swing教程的MouseListener/MouseMotionListener部分吗?如果没有,并且您还没有编写任何东西,我建议您复习一下教程,看看如何使用MouseMotionListener。您不想监听mouseEntered,而更可能是监听mouseMoved。伪代码示例可以是:

代码语言:javascript
复制
in MouseMotionListener or MouseAdapter
   mouseMoved method
      get position of mouse pointer via the MouseEvent parameter.
      For loop through list of Polygons 
         If mouse inside of polygon, highlight it.
         Else, un-highlight it.
      End for loop
   End of mouseMoved method.
end MouseMotionListener or MouseAdapter
票数 4
EN

Stack Overflow用户

发布于 2011-05-24 07:13:02

java.awt.Polygon有一个contains(double x, double y)方法,如果x,y鼠标坐标在多边形内部,则该方法返回true。

(x,y)坐标来自于在绘制形状的容器上实现MouseMotionListener,在实现的public void mouseMoved(MouseEvent e)方法中,您有e.getX()e.getY()来获取坐标并检查它们是否在多边形中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6103813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档