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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

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

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

提问于
用户回答回答于

您是否浏览过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)坐标来自在您绘制形状的Container上实现MouseMotionListener,并且在实现的public void mouseMoved(MouseEvent e)方法中,您有e.getX()和e.getY()来获取 坐标并检查它们是否在您的多边形中。

扫码关注云+社区

领取腾讯云代金券