使用这个接口是用了innerclass的方法,
this我也不清楚
不过我知道它的意思,是想得到按钮事件的来源
我觉得应该用e.getSource()啊
this我也不清楚
不过我知道它的意思,是想得到按钮事件的来源
我觉得应该用e.getSource()啊
解决方案 »
- 这是个什么问题,怎么解决
- ie阻止文件下载
- 性別 : <html:radio property="sex" value="女"/>女<html:radio property="sex" value="男"/>男<br/>
- java .util.Date问题
- 日文系统乱码问题
- ajax 获得的result字符串中总是有18个空格,不知道为什么
- servlet javabean一问
- DingL论坛及万能JDBC驱动正式发布及源码下载!
- 如何从jar文件中读取资源文件???
- 控制台读取输入流,读到2个空行则停止该怎么实现
- jdbc连接mssql的时候报的这样的错??谁知道什么原因???(奇怪)
- 紧急:JBuilder9下用微软的JDBC驱动连接SQL Server失败????
有些变量或类我们只用一次,可以用内部类来实现,不用专门去定义一个新变量,给一个新名字
其实和定义一个新变量一样,不过这个类没有名字罢了
相当于 public XXX = new ActionListener()
或class XX extends ActionListener
然后再使用XXX一样
this应该指new ActionListener
public void actionPerformed(ActionEvent e)
{
System.out.println("HelloWorld");
this.getSource();
}
});
是一个匿名内部类,
就是没有名字的类,ActionListener是一个接口,说明有一个类实现了ActionListener接口,但他没有名字,后面大括号中是这个没有名字的类的方法.
this应该指的是e.
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;public class Test extends JFrame
{
public Test()
{
System.out.println("&& = " + this.getClass().toString());
init();
}
private void init()
{
setSize(200, 100);
setLocation(500, 400);
Container pane = getContentPane();
pane.setLayout(null);
buttonOK = new JButton("OK");
buttonOK.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("HelloWorld");
System.out.println(this.getClass().toString());
System.out.println(e.getSource().toString());
}
});
buttonOK.setBounds(50, 30, 80, 20);
pane.add(buttonOK);
}
public static void main(String[] args)
{
Test test = new Test();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.show();
}
private JButton buttonOK;
}估计是楼主写错了,JFrame类和ActionListener接口都没有getSource()方法;
应该是e.getSource()
运行一下上面的代码,就知道什么是什么了
输出test$1指的就是匿名内部类,
在actionPerformed()里的this指的就是它。
因为其中的actionPerformed()方法要你自己来实现。