Java - 获取绘制组件的名称

标签 java events click mouse

我有一个包含五个按钮的 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/

相关文章:

Java OutOfMemoryError 没有抛出

Java Google Cloud Endpoints 教程 api 未出现在查看器中

java - 什么是引用复制技术以及为什么字符串对象引用值不会更改?

.net - 在不移动鼠标的情况下将鼠标点击发送到特定位置

asp.net - FireFox 和 javascript 问题(event.keyCode 或 event.charCode 或 event.which 不起作用)

click - jquery click 事件只运行一次

jquery - 使用 jQuery 触发器按类名触发父窗口元素上的单击事件

css - Smartadmin、Bootstrap 3 buttons with span 有死点。不触发事件

java - java中简单的字符串连接操作

jquery - 为什么 jQuery .change() 不会在因选择同名而取消选择的单选按钮上触发?