Java:将ActionListeners添加到图形对象

时间:2012-10-28 17:24:24

标签: java swing jbutton actionlistener

我有一大堆按钮,是否有一种向所有按钮添加actionListeners的方法,而不是为所有这些按钮button.addActionListeners(this)?它使代码看起来很混乱。

3 个答案:

答案 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);
   }
}