java中this指代问题。btn.addActionListener(this);

Java代码:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

/**

*Java事件处理机制:自身类作为事件监听器

*@author Winty(wintys@gmail.com)

*@version 2008-12-3

*/

class ThisClassEvent extends JFrame implements ActionListener{

JButton btn; 



public ThisClassEvent(){ 

    super("Java事件监听机制"); 

    setLayout(new FlowLayout()); 

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 



    btn=new JButton("点击"); 

    btn.addActionListener(this); 

    getContentPane().add(btn); 



    setBounds(200,200,300,160); 

    setVisible(true); 

} 



/*******************这里就是向监听器中添加的方法*******************/ 

public void actionPerformed (ActionEvent e){ 

    Container c=getContentPane(); 

    c.setBackground(Color.red); 

} 

/**************************************/ 



public static void main(String args[]){ 

    new ThisClassEvent(); 

} 

}

   btn.addActionListener(this); 这里的this指代什么?怎么理解?

2个回答

这个 是java基础语法this值得是ThisClassEvent这个类,即写代码这个类 它实现了ActionListener接口 所以它可以处理事件

u013168660
我擦_你中枪了 谢谢
大约 4 年之前 回复
javao_0
javao_0 回复我擦_你中枪了: 对 是的 this就是指的ThisClassEvent所创建的对象 与之对应还有一个super指的是父类
大约 4 年之前 回复
u013168660
我擦_你中枪了 new ThisClassEvent();
大约 4 年之前 回复
u013168660
我擦_你中枪了 那this指代的就是ThisClassEvent所创建的对象是吗?
大约 4 年之前 回复

这个就是指btn ,可以省略

u013168660
我擦_你中枪了 不能去掉,我试过了
大约 4 年之前 回复
u013168660
我擦_你中枪了 不是吧,此处不是相当于加入监听器吗?
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐