2013-04-04 74 views
0

我有一個JButton標題爲「選擇」 在此創建的JButton等類,我想用一個if條件與actionPerformed方法的類。可以從JButton的Event Handler類調用ActionPerformed方法嗎?

類似的信息(僞代碼)

if(_selectListener.actionPerformed(ActionEvent)) { //i.e., if select Button is clicked, 
    //do something 
} 

這可能嗎?

我想調用這個方法,因爲我必須處理一種情況,玩家應該能夠通過點擊「選擇」按鈕或另一個「滾動」按鈕來選擇某些東西,並且我想用類似的東西來控制它到如上面的一堆if語句。

如果可能,它的語法是什麼?什麼是ActionEvent的參數? 謝謝!

+0

看看這裏:http://stackoverflow.com/questions/8489387/calling-actionperformed-of-a-button-explicitly – redc0w 2013-04-04 12:29:34

回答

0

最簡單和乾淨的方法是將一個專門的,具體的行動監聽器添加到每個按鈕。這樣一來,當actionPerformed()方法被調用時,你確定相關的按鈕被點擊,並且不需要進行測試按鈕被點擊其中:

selectButton.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     // handle click on select button 
    } 
}); 

scrollButton.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     // handle click on scroll button 
    } 
}); 

另一種方法是使用通用ActionListener,並使用ActionEvent的getSource()方法來知道哪個組件觸發了該事件。結果與每個潛在的按鈕進行比較,以確定哪些是已經被點擊了一個:

@Override 
    public void actionPerformed(ActionEvent e) { 
     if (e.getSource() == selectButton) { 
      // handle click on select button 
     } 
     else if (e.getSource() == scrollButton) { 
      // handle click on scroll button 
     } 
    } 

什麼說法動作事件?

答案是the documentation。閱讀。

0

不,你不能打電話,if需要boolean表達/價值,但這種方法返回void。