问题描述
||
我是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
的情况,在已实现的public void mouseMoved(MouseEvent e)
方法中,您分别具有e.getX()
和e.getY()
来获取坐标并检查它们是否在多边形中)。