2009-02-01 22 views
1

首先,我是一個完整的Java NOOB。Java - 用一個函數處理多個事件?

我想處理多個按鈕與一個功能,並根據點擊按鈕做某些事情。我正在使用Netbeans,並且我添加了一個具有綁定功能的事件。該函數默認發送一個ActionEvent。

如何獲取被點擊的對象,以便從該函數內部觸發綁定函數,以便我知道要追求哪些功能?

回答

7

發送事件的對象是事件源,因此evt.getSource()會幫你。但是,單獨處理單獨事件會更好。

4

調用ActionEvent的getSource()方法。例如:

public void actionPerformed(ActionEvent e) { 
    Object source = e.getSource(); 
    // 'source' now contains the object clicked on. 
} 
0

如果使用AWT事件,然後ActionEvent的支持,這將使您這理應生成事件的對象的getSource()方法。

話雖這麼說,有更好的設計,其中每個對象實例化它自己的事件處理程序

1

處理多個按鈕按下一個功能(方法)只有當所有的按鈕按下做正是同樣的事情。

即使在這種情況下,有一個私有方法,並從所有需要的地方調用此私有方法。

爲不同的按鈕編寫單獨的事件處理程序並不困難。在最簡單的情況下,寫匿名處理,具體如下:

aButton.addActionListener(new java.awt.event.ActionListener() 
    { 
     public void actionPerformed(ActionEvent ae) 
     { 
      myMethod(); 
     } 
    }); 

在更復雜的情況下,寫一個擴展ActionListener一個單獨的類,並使用該addActionListener()調用內部的上方。

這並不難,易於維護和擴展,並且比單一的actionPerformed更好。

(在NetBeans中,右鍵單擊按鈕,Events-> Action-> actionPerformed,代碼就會生成)

相關問題