我有一个包含五个按钮的 Java 应用程序:
i) 正方形 ii) 矩形 iii) 圆形 iv) 三角形 iv) 透明
单击四个按钮中的任何一个都会在绘图 Canvas 上绘制相应的形状。这是用于绘制形状的代码:
绘图 Canvas 类继承自JPanel。用户单击并绘制到绘图 Canvas 的形状存储在名为 Shapes 的 ArrayList 中。
现在在绘图 Canvas 类中我有许多鼠标监听器。在 MousePressed 事件中,我想检测单击的内容。
这就是我用于按钮的内容:
按钮的命名是使用 JButton 类的 setName 方法实现的。
但是,Graphics类没有这样的方法。我怎样才能检测到 Canvas 上的某个形状已被单击(绘制后)?
最佳答案
要跟踪绘制的内容,您应该跟踪在 Collection(例如 ArrayList)中绘制到 Canvas 中的形状的坐标,并根据该数组对单击的鼠标位置进行检查。
关于Java - 获取绘制组件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13475907/