0

我用 Netbeans 用 Ja​​va 制作了一个应用程序。在 Jframe 表单中,我使用了四个按钮。我需要知道用户点击了哪些。每个人都可以帮助我吗?谢谢

public class Color extends javax.swing.JFrame implements ActionListener {


public Color() {
        initComponents();


        /////////////////////////////////

        //Register a listener for the  buttons.
        up_button.addActionListener(this);
        down_button.addActionListener(this);
        left_button.addActionListener(this);
        right_button.addActionListener(this);
       }


private int k=1;
    public void actionPerformed(ActionEvent e) {

       k=k+1;


       if (k==1)
       {
         image.setIcon(createImageIcon("color1"
                                        + e.getActionCommand()
                                        + ".PNG"));
       }
       else ...  }

       private void up_buttonActionPerformed(java.awt.event.ActionEvent evt)     {                                          
        // TODO add your handling code here:

    }  

    private void down_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:

    }

    public static void main(String args[]) {

        /* Create and display the form */

        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Color().setVisible(true);
            }
        });
    }
4

3 回答 3

2

您可以调用getSourceActionEvent找出事件的来源。这将是按钮之一。

于 2013-10-29T21:25:44.263 回答
2

我需要知道其中哪些用户点击了

只需实现该actionPerformed方法并调用变量即可知道单击getSource()ActionEvent哪个按钮:

public void actionPerformed(ActionEvent e){
      if(e.getSource() == up_button){
         //up_button clicked
      }       
}

您也可以直接将侦听器添加到您的按钮:

up_button.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){
        //Button is pressed
     }
 });   
于 2013-10-29T21:26:58.540 回答
0

处理程序的ActionEvent参数将包含对创建事件的对象(按钮)的引用。

(继承自 EventObject)

http://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html#getSource()

于 2013-10-29T21:27:35.273 回答