事件Java获取绘制组件的名称
我有一个包含五个按钮的Java应用程序:
i)正方形ii)矩形iii)圆形iv)三角形iv)清晰
单击四个按钮中的任何一个将在绘图画布上绘制相应的形状。这是用于绘制形状的代码:
绘图画布类继承自JPanel。用户单击并绘制到绘图画布的形状存储在名为形状的数组列表中
现在在绘图画布类中,我有许多鼠标侦听器。在MousePressed事件中,我想检测单击的内容
这是我用来做按钮的:
按钮的命名是使用JButton类的setName方法实现的
但是,Graphics类没有这样的方法。我怎样才能检测到其中一个形状已在画布上单击(一旦绘制完成)
# 1 楼答案
要跟踪绘制的内容,您应该跟踪在集合(如ArrayList)中绘制到画布中的形状的坐标,并基于此数组检查鼠标单击的位置
# 2 楼答案
如果您只是在^{} 中使用
fill
和draw
方法绘制图形,那么无法再次获取信息,也无法从Graphics
对象中获取信息。你得自己做点什么如果列表中的对象继承自Shape,则可以检查单击是否在每个形状的边界内