我知道何时对字段和构造函数使用关键字“this”但我不确定它何时作为参数传递
import javax.swing.*;
import java.awt.event.*;
public class SimpleGui implements ActionListener {
JButton button;
public static void main (String[] args) {
SimpleGui gui = new SimpleGui();
gui.go();
}
public void go() {
JFrame frame = new JFrame();
button = new JButton("click me");
button.addActionListener(this);
frame.getContentPane().add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
button.setText("I've been clicked!");
}
}
答案 0 :(得分:6)
行button.addActionListener(this);
表示:
button
对象SimpleGui
的当前实例(SimpleGui
碰巧实现ActionListener
接口)因此,单击该按钮时,应调用SimpleGui#actionPerformed
。
答案 1 :(得分:1)
每当按下按钮以获得回调时,我们需要将一个监听器附加到该按钮,在您的示例中使用以下行完成,
<强> button.addActionListener(本); 强>
addActionListener()需要传递一个实现ActionListener接口的实例。
这里的SimpleGui是一个ActionListener,因为它实现了该接口。因此,在SimpleGui中,你正在写作,
<强> button.addActionListener(本); 强>
这是实现ActionListener
的SimpleGui实例答案 2 :(得分:0)
这是一个关键字,表示该类的实例, 在你的班级
public class SimpleGui implements ActionListener {
this
是 SimpleGui 的一个实例,也可以是实现 actionListener
如果您调用接受this
的方法,那是因为
这个参数是SimpleGui类的一个对象,甚至更好,是一个实现 ActionListener 的对象(无论哪一个)。