使用带鼠标的事件突出显示多边形

时间:2011-05-23 22:36:45

标签: java swing awtutilities

我是Java Swing的新手,我正在完成一项任务。我的组件上有一些多边形。当我输入一个多边形时,它必须突出显示(即填充一些颜色)。

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

2 个答案:

答案 0 :(得分:4)

您是否浏览过Swing教程的MouseListener / MouseMotionListener部分?如果没有,如果您还没有写任何内容,我建议您查看教程并查看使用MouseMotionListener。你不想听mouseEntered,但更有可能是mouseMoved。伪代码示例可以是:

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

答案 1 :(得分:2)

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

(x,y)坐标来自在您绘制形状的Container上实现MouseMotionListener,并且在已实现的public void mouseMoved(MouseEvent e)方法中e.getX()和{{1获取坐标并检查它们是否在多边形中。