如何从Java2D生成的图形生成事件

时间:2010-01-07 13:33:44

标签: java events graphics java-2d

我在java.awt.geom.Ellipse2D的帮助下制作了一个Ellipse

现在,我希望每当用户点击该椭圆时,就会生成一个事件,以便我可以监听该事件并根据生成该事件的椭圆执行后续任务。

3 个答案:

答案 0 :(得分:3)

这是一个简单的example对象绘图程序,用于演示单击,拖动和多个选择。还要考虑JGraph,这是一个更高级的图形可视化库。

答案 1 :(得分:1)

我不认为没有大量手工编码的东西是可能的(让画布或其他东西,听老鼠事件,并在点击椭圆时自己计算)。

如果你想做更多这样的事情,请考虑一下场景图。有了它,椭圆本身就是一个对象,你可以注册事件监听器。


编辑为对评论的回复:

场景图:https://scenegraph.dev.java.net/ 谷歌更多资源:scenegraph java 是的。 Scenegraph是JavaFX的一部分,但与纯Java(无FX)很好地配合使用

答案 2 :(得分:1)

我将假设这是一个问题,想要一种方法来聆听使用Graphics2D.draw在某些Swing组件上绘制的椭圆上的鼠标点击。

简单的答案是,没有办法从表面上绘制的图形生成鼠标事件。

然而,这是另一种方法:

  1. 将制作省略号的Ellipse2D对象存储在List中。
  2. 在要点击用户的Swing组件上注册MouseListener
  3. 从鼠标点击生成的MouseEvent开始,确定点击鼠标的位置(使用MouseEvent.getPoint),然后检查鼠标是否发生在Ellipse2D中的任何一个使用Ellipse2D.contains方法包含在上述List中。