java - 如何知道我的程序中何时发生了某个操作

标签 java swing actionlistener

我用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() ) );
      } 
   } 
}

最佳答案

使用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!
}

关于java - 如何知道我的程序中何时发生了某个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343799/

相关文章:

java - 当将其调用到 main 中时,Keylistener 和 actionlistener 不起作用。

java - 如何生成 1 次鼠标 + 1 次键盘点击?

java - 如何将两个位图合并到另一个位图

java - 关闭 BoxLayout 上的 GPS

Java:定义变量后找不到变量

java - 陷入多客户端聊天应用程序困境

java - 设置 JDialog 相对于 JFrame 的位置

java - 我试图在每次按下按钮时更改 JPanel 的背景颜色

java - 有没有办法在不增加可见性的情况下使用私有(private)变量进行单元测试?

java - 不返回 java 函数注解