高亮显示具有鼠标输入事件的多边形

问题描述

|| 我是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()
来获取坐标并检查它们是否在多边形中)。