我是Java Swing的新手,我正在完成一项任务。我的组件上有一些多边形。当我输入一个多边形时,它必须突出显示(即填充一些颜色)。
当我转到下一个多边形时,它必须突出显示,之前的一个应该被删除(即正常状态)。我找到了一些例子,但那些是使用“鼠标”事件,但我的不同。
答案 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获取坐标并检查它们是否在多边形中。