对于初学者来说,这应该是一个基本的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.
}
这是在做同样的事情,只是在方括号内定义了类。