2012-10-28 79 views
1

我得到了一大堆按鈕,有沒有爲所有人添加動作偵聽器的方法,而不用去所有人都使用button.addActionListeners(this)?它使代碼看起來很雜亂。Java:向圖形對象添加ActionListeners

+0

這正是收藏和'for'循環是。 –

+0

'它使代碼看起來很雜亂.'抱歉真的???,不擴展類或實施任何 – mKorbel

回答

3

如果你想要所有按鈕的共同行爲,你需要讓它們擴展一個抽象類,在那裏你定義了通用代碼。因此,用自己的添加偵聽器方法定義自己的摘要MyButtonClass

3

不,沒有。但是如果所有按鈕共享相同的動作監聽器(這很奇怪),也許它們應該存儲在一個數組或集合中。然後,你可以這樣做:

for (JButton button : allButtons) { 
    button.addActionListener(this); 
} 
+0

對於[示例](http://stackoverflow.com/a/7706684/230513)。 – trashgod

3

如果所有的按鈕都在一個容器中,你可以註冊一個ActionListener這樣的:

for (Component c: container.getComponents()) { 
    if (c instanceof JButton) { 
     ((JButton)c).addActionListener(this); 
    } 
}