我有一大堆按钮,是否有一种向所有按钮添加actionListeners的方法,而不是为所有这些按钮button.addActionListeners(this)
?它使代码看起来很混乱。
答案 0 :(得分:3)
如果您想要对所有按钮使用常见行为,则需要使它们扩展为定义公共代码的抽象类。因此,使用自己的添加侦听器方法定义自己的抽象MyButtonClass
。
答案 1 :(得分:3)
不,没有。但是如果所有按钮共享相同的动作侦听器(这很奇怪),也许它们应该存储在数组或集合中。然后你可以这样做:
for (JButton button : allButtons) {
button.addActionListener(this);
}
答案 2 :(得分:3)
如果所有按钮都在一个容器上,您可以注册一个ActionListener
,如下所示:
for (Component c: container.getComponents()) {
if (c instanceof JButton) {
((JButton)c).addActionListener(this);
}
}