2013-05-12 34 views
-1

我有許多GUI窗體,每個GUI窗體上都有許多按鈕。我想要檢測用戶何時點擊這些按鈕中的任何一個。向按鈕按下添加處理程序

我的問題是這樣的:我應該單獨向每個按鈕添加代碼,還是可以通過按下按鈕時調用的公用方法按下每個按鈕?如果我使用公共方法(我寧願這樣做),該方法如何檢測調用該函數的按鈕?按鈕必須是公共變量嗎?

目前我使用此代碼(這樣的作品,我想知道如果我可以做的更好):

loginButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) 
     { 
      System.out.println("You clicked the button"); 
     }}); 
+0

*「我想要檢測用戶何時單擊這些按鈕上的任何按鈕。」然後,您通常需要確定按下哪個按鈕做出適當的行動。出於這個原因,通常認爲每個按鈕/菜單項使用一個「ActionListener」或「AbstractAction」會更好。 – 2013-05-12 11:56:17

+0

注意到這個問題現在已擴展到3個問題:最好將它限制爲每個問題一個問題。請不要忘記添加一個問號。 – 2013-05-12 11:57:28

+0

看看是否可以使用ActionEvent來獲取目標。學會使用sdk – qwr 2013-05-12 11:59:28

回答

1

我應該單獨代碼添加到每個按鈕,或者我可以照顧到每個 按鈕是否按下按鈕時被調用的公用方法按下按鈕?

我的想法(和理智),我會分開動作偵聽器/處理程序。一般來說,它保持個人行爲/代碼簡單並符合要點。

如果需要,每個按鈕/菜單可以有多個動作偵聽器。

我也想看看的Action API

如果我使用的公共方法(我寧願做),請問該方法 檢測調用該函數的按鈕?按鈕必須是 一個公共變量?

如果您真的想遵循此方法,您可以將ActionEvent傳遞給它,它將包含對動作來源以及動作命令的引用。

個人而言,我不會。這些類型的方法在管理,維護,調試和更新方面非常困難