【发布时间】:2015-07-02 19:30:46
【问题描述】:
我正在编写一个 Java 程序,其中有一组按钮(不是计算器!),我正在寻找一种有效的方法来了解单击了哪个 JButton。根据我目前对 Java 的了解,唯一的方法是将它们全部放在同一个 ActionListener 中,然后循环查找匹配项。
我刚刚想到的另一个解决方案是扩展 JButton 以在构造函数中包含一个唯一的 ID 号变量。在 instanceof 检查后将事件对象强制转换为 JButton 时,这似乎应该起作用。有点像使用分配给索引号的 VB 的 Tag 属性。
有没有更好/更优雅的方式?
【问题讨论】:
-
您可以使用 setName 和 getName 方法为每个 JButton 分配一个唯一的 ID。
-
小心
setName如果在操作之前设置它可能会得到nulled。 -
这是可能的。我不知道这些方法,它们是 JComponent 的一部分。这是一件好事。这实际上也有助于另一个程序。谢谢!
-
Dima,你的意思是被某种方式覆盖了吗?
-
如果您创建一个
JButton,然后在其上调用setName("name"),然后调用setAction(new AbstractAction(...)),下一次调用getName将返回null。看看this