对于初学者来说,这应该是一个基本的Java程序。
 有关ActionListener接口的主题为“ Head First Java 2nd Edition”。

我不了解该程序中使用的某些术语,例如

button.addActionListener(this);


当此代码执行时,如何触发或运行actionPerformed方法或
您使用的任何术语?

//Program begins from now!!

import javax.swing.*;

import java.awt.event.*;

public class SimpleGui1B implements ActionListener {

    JButton button;

    public static void main(String[] args) {

        SimpleGui1B gui = new SimpleGui1B();
        gui.go();

    }

    public void go(){ //start go
        JFrame frame= new JFrame();
        button=new JButton("Click me");

        frame.getContentPane().add(button);

        button.addActionListener(this);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setSize(300,300);
        frame.setVisible(true);
    }//close go()

    public void actionPerformed(ActionEvent event){
        button.setText("I’ve been clicked!");

    }


}

最佳答案

让我们分解一下这句话,我们是否:

button.addActionListener(this);


好的,所以您要引用button对象。我认为这是JButton类型的对象。 button对象具有一个称为addActionListener的方法。这样做是添加一个实现ActionListener接口的对象。

发生这种情况的类就是那些对象之一。正如您在顶部看到的那样:

public class SimpleGui1B implements ActionListener


因此,程序正在执行的操作是说当前类(this)将作为方法的参数。然后,如果您查看此类,您将拥有方法actionPerformed

public void actionPerformed(ActionEvent event){
    button.setText("I’ve been clicked!");

}


这意味着只要单击该按钮,就会调用actionPerformed方法中的代码。另一种选择是说:

button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e)
      {
           // Add some code here.
      }


这是在做同样的事情,只是在方括号内定义了类。

10-08 19:46