我有一大堆按钮,有没有办法将actionListeners添加到所有按钮而不用button.addActionListeners(this)
全部?它使代码看起来很乱。
问问题
98 次
3 回答
3
如果所有按钮都在一个容器上,您可以ActionListener
像这样注册一个:
for (Component c: container.getComponents()) {
if (c instanceof JButton) {
((JButton)c).addActionListener(this);
}
}
于 2012-10-28T17:31:21.967 回答
3
如果您想要所有按钮的通用行为,您需要使它们扩展您定义通用代码的抽象类。MyButtonClass
因此,使用自己的添加侦听器方法定义您自己的抽象。
于 2012-10-28T17:27:47.630 回答
3
不,那里没有。但是如果所有按钮共享同一个动作监听器(这很奇怪),也许它们应该存储在一个数组或集合中。然后你可以这样做:
for (JButton button : allButtons) {
button.addActionListener(this);
}
于 2012-10-28T17:28:41.753 回答