关于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();
}
}
展开
 我来答
lmy_sk521
2012-07-29 · TA获得超过2272个赞
知道小有建树答主
回答量:1330
采纳率:73%
帮助的人:727万
展开全部
TestSwing类实现了ActionListener接口,button.addActionListener();需要传入的参数就是实现了ActionListener接口的类,this是指TestSwing类的一个对实例即对象,也就是说用当前对象来监听ActionListener事件。
如果你不能理解this的意思,你也可以再定义一个类用这个类去实现ActionListener接口,将这个类传入到button.addActionListener();
百度网友d61f994
2012-07-28 · 超过14用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:52.8万
展开全部
实现了ActionListener接口就表示TestSwing是ActionListener的子类型,可以这样传递,this是本对象的引用,由于继承了JFrame,所以有了add方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式