2013-11-01 43 views
0

我在寫一個很大的類,不想在這裏發佈。問題是以下內容,我如何引用在不同類的構造函數中按下的按鈕?比方說,我想在偵聽器中執行一些操作後禁用它。如果監聽器是anonymus或者是一個內部類SomeClass的,我只想用這樣的變量名:從一個單獨的類中的偵聽器中禁用JButton

button.setEnabled(false); 

但我怎麼能做到這一點時,我的聽衆是一個單獨的類?嘗試使用e.getModifiers()。setEnabled(false)和e.getSource()。setEnabled(false),沒有工作。

public class SomeClass extends JPanel { 
    private JButton button = new JButton("Button"); 
    public SomeClass() { 
     button.setActionCommand("button"); 
     button.addActionListener(new ButtonListener()); 
    } 


    public static void main(String[] args) { 
     // TODO code application logic here 
    } 
} 
class ButtonListener implements ActionListener { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     String src = e.getActionCommand(); 
     if (src.equals("button")) { 
      //some actions here 
      //then    
     }   
    }  
} 

回答

1

嘗試此事件是指這個((JButton)e.getSource()).setEnabled(false)

必須工作)

e.getSource()回報組件(docs

+0

是的,它的工作,非常感謝你。儘管如此,在我看來,這個解決方案是某種「欺騙」。我想知道是否有這樣的「官方」方式? –

+0

這不是一個欺騙它是官方的方法 – alex2410

相關問題