Java - 获取绘制组件的名称

时间:2012-11-20 14:58:54

标签: java events click mouse

我有一个包含五个按钮的Java应用程序:

i)方形ii)矩形iii)圆圈iv)三角形iv)透明

单击四个按钮中的任何一个将导致在绘图画布上绘制相应的形状。这是用于绘制形状的代码:

绘图画布类继承自JPanel。用户单击并绘制到绘图画布的形状存储在名为形状的ArrayList中。

现在在绘图画布类中,我有许多鼠标侦听器。在MousePressed事件中,我想检测点击的内容。

这是我用于按钮的内容:

使用JButton类的setName方法实现按钮的命名。

但是,Graphics类没有这样的方法。如何检测到其中一个形状已经在画布上被点击(一旦被绘制)?

2 个答案:

答案 0 :(得分:1)

要跟踪绘制的内容,您应该跟踪在Collection(例如ArrayList)中绘制到画布中的形状的坐标,并根据此数组检查单击的鼠标位置。 / p>

答案 1 :(得分:0)

如果您只是使用Graphics中的filldraw方法绘制形状,那么就无法再将信息重新输出,而不是{{1}无论如何,对象。你将不得不自己做点什么。

如果列表中的对象继承自Shape,那么您可以检查点击是否在每个形状的范围内。

Graphics