2011-12-01 40 views
1

我使用java編寫了一個程序,並使用了幾個在我的程序中執行操作的組件(actionListener)。 我想知道此組件何時發生任何操作。例如,當我點擊按鈕或菜單項時,調用一個方法。如何知道何時在我的程序中發生了某個操作

public class ButtonFrame extends JFrame 
{ 
    private JButton plainJButton; // button with just text 
    private JButton fancyJButton; // button with icons 

    public ButtonFrame() 
    { 
     super("Testing Buttons"); 
     setLayout(new FlowLayout()); // set frame layout 

     plainJButton = new JButton("Plain Button"); 

     add(plainJButton); 


     fancyJButton = new JButton("Fancy Button"); 

     add(fancyJButton); 

     // create new ButtonHandler for button event handling 
     ButtonHandler handler = new ButtonHandler(); 
     fancyJButton.addActionListener(handler); 
     plainJButton.addActionListener(handler); 
    } 


    private class ButtonHandler implements ActionListener 
    { 

     public void actionPerformed(ActionEvent event) 
     { 
     JOptionPane.showMessageDialog(ButtonFrame.this, String.format(
      "You pressed: %s", event.getActionCommand())); 
     } 
    } 
} 

回答

1

使用event.getSource()來區分註冊的組件。

示例 -

if(plainJButton == event.getSource()){ 
    // do stuff (e.g. show message dialog, invoke method, and etc.) 
} 
else if(fancyJButton == event.getSource()){ 
    // do stuff (e.g. show message dialog, invoke method, and etc.) 
} 
else{ 
    // ut-oh..time to panic! 
} 
0

您可以在事件中使用getSource()

相關問題