繁体   English   中英

使用 mouseentered 事件突出显示多边形

[英]Highlight polygons with mouseentered event

我对 Java Swing 非常陌生,我正在做一个任务。 我的组件上有一些多边形。 当我进入一个多边形时,它必须突出显示(即填充一些颜色)。

当我 go 到下一个多边形时,它必须突出显示并且前一个应该被擦除(即正常状态)。 我找到了一些示例,但这些示例使用的是“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()来获取坐标并检查它们是否在您的多边形中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM