我对 Java Swing 很陌生,我正在做一个任务。我的组件上有一些多边形。当我进入一个多边形时,它必须突出显示(即填充一些颜色)。
当我转到下一个多边形时,它必须突出显示并且前一个应该被擦除(即正常状态)。我找到了一些示例,但这些示例使用的是“mousepressed”事件,但我的不同。
我对 Java Swing 很陌生,我正在做一个任务。我的组件上有一些多边形。当我进入一个多边形时,它必须突出显示(即填充一些颜色)。
当我转到下一个多边形时,它必须突出显示并且前一个应该被擦除(即正常状态)。我找到了一些示例,但这些示例使用的是“mousepressed”事件,但我的不同。
您是否浏览过 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
java.awt.Polygon 有一个contains(double x, double y)
方法,如果 x,y 鼠标坐标在多边形内,则返回 true。
(x,y) 坐标来自MouseMotionListener
在您绘制形状的容器上实现 a 并在您拥有的已实现方法public void mouseMoved(MouseEvent e)
中获取坐标并检查它们是否在您的多边形中。e.getX()
e.getY()