我在 java.awt.geom.Ellipse2D 的帮助下制作了一个椭圆
现在,我希望每当用户单击该椭圆时,都会生成一个事件,以便我可以收听该事件并根据生成该事件的椭圆执行后续任务。
这是一个简单的对象绘制程序示例,演示了单击、拖动和多选。还要考虑JGraph,这是一个更高级的图形可视化库。
我认为如果没有大量手工编码的东西(让画布或其他东西,听鼠标事件,并计算自己是否单击了椭圆),这是不可能的。
如果您想做更多类似的事情,请考虑场景图。这样,椭圆本身就是一个对象,您可以注册事件侦听器。
编辑作为对评论的回应:
场景图: https ://scenegraph.dev.java.net/ 谷歌获取更多资源:场景图 java 是的。场景图是 JavaFX 东西的一部分,但可以很好地与纯 Java(无 FX)一起使用
我将假设这是一个问题,询问一种方法来收听鼠标点击,这些点击是在使用Graphics2D.draw
.
简单的答案是,没有办法从绘制在表面上的图形生成鼠标事件。
但是,这是另一种方法:
Ellipse2D
将从中绘制椭圆的对象存储在List
.MouseListener
在用户要点击的 Swing 组件上注册一个。MouseEvent
鼠标点击生成的 s 中,判断鼠标点击的位置(使用),并使用方法MouseEvent.getPoint
检查鼠标点击是否发生在Ellipse2D
上述 包含的任何一个 s 中。List
Ellipse2D.contains