关于java中 actionlistener的问题?
publicclassTestSwingextendsJFrameimplementsActionListener{JTextFieldtext;JButtonbutto...
public class TestSwing extends JFrame implements ActionListener {
JTextField text;
JButton button;
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("button");
text.setText("button");
button.setText("别按了");
}
public TestSwing() {//这是构造函数
button = new JButton("button");
text = new JTextField();
button.addActionListener(this);//我的问题就在这,文档中说这里是一个ActionListener类型的值,但为什么用了this,this不是TestSwing 类型的吗,虽然TestSwing 是继承了ActionListener接口,但也不能说他就是ActionListener类型的吧。还有就是我不知道this在这里是怎么调用的,求解。。。
this.add(button, "North");
this.add(text, "South");
public static void main(String[] args) {
TestSwing frame = new TestSwing();
}
} 展开
JTextField text;
JButton button;
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("button");
text.setText("button");
button.setText("别按了");
}
public TestSwing() {//这是构造函数
button = new JButton("button");
text = new JTextField();
button.addActionListener(this);//我的问题就在这,文档中说这里是一个ActionListener类型的值,但为什么用了this,this不是TestSwing 类型的吗,虽然TestSwing 是继承了ActionListener接口,但也不能说他就是ActionListener类型的吧。还有就是我不知道this在这里是怎么调用的,求解。。。
this.add(button, "North");
this.add(text, "South");
public static void main(String[] args) {
TestSwing frame = new TestSwing();
}
} 展开
2个回答
展开全部
TestSwing类实现了ActionListener接口,button.addActionListener();需要传入的参数就是实现了ActionListener接口的类,this是指TestSwing类的一个对实例即对象,也就是说用当前对象来监听ActionListener事件。
如果你不能理解this的意思,你也可以再定义一个类用这个类去实现ActionListener接口,将这个类传入到button.addActionListener();
如果你不能理解this的意思,你也可以再定义一个类用这个类去实现ActionListener接口,将这个类传入到button.addActionListener();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询