private void launchFrame() {
this.setLocation(400, 300);
this.setSize(400, 300);
this.add(tf, BorderLayout.SOUTH);
this.add(taContent, BorderLayout.NORTH);
this.pack();
this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {
disconnect();
System.exit(0);
} });---------------------------------------------------------------------------
大家帮我看看,这是一段关闭窗口的代码,在窗口上注册addWindowListener的时候定义了一个适配器类型的内部类,这个类应该是抽象类啊,怎么可以直接new啊?另外怎么可以直在new他的同时还在方法体内重写void windowClosing方法?不太明白,麻烦大家给详细解释一下,先谢谢大家了
this.setLocation(400, 300);
this.setSize(400, 300);
this.add(tf, BorderLayout.SOUTH);
this.add(taContent, BorderLayout.NORTH);
this.pack();
this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {
disconnect();
System.exit(0);
} });---------------------------------------------------------------------------
大家帮我看看,这是一段关闭窗口的代码,在窗口上注册addWindowListener的时候定义了一个适配器类型的内部类,这个类应该是抽象类啊,怎么可以直接new啊?另外怎么可以直在new他的同时还在方法体内重写void windowClosing方法?不太明白,麻烦大家给详细解释一下,先谢谢大家了
解决方案 »
- swing JFreeChart柱状图 分层显示
- 对于Java多态的疑惑
- java -jar 启动dos窗口的问题
- 如何使用枚举类型,在JAVA中?
- 对象数组为什么必须排序好了才可以搜索里面的元素啊!
- 救急!怎样用将文字转成ASCII码!在线等待。
- 怎么样在让一个japplet 具有windows 风格显示啊
- java读取 access数据库-复合表?
- 文件上传,然后把文件中的数据写入数据库,怎样做到。
- Java 问题: 用两个按钮分别为上一页,下一页,来控制 JTextArea,如何实现滚动条通过点击上下页按钮来
- 刚自学JAVA就出现了问题,我自己解决不了,请帮一帮我!
- static性能的疑虑
http://topic.csdn.net/u/20080728/20/d60f719a-c103-44b8-8d0c-bc1c818b768a.html
就像 下面的线程一样啊。new Thread(new Runnable(){
public void run(){
System.out.println("run...");
}
});
new WindowAdapter() { //new WindowAdapter说明创建一个匿名内部类,它继承自WindowAdapter类,如果new 后面是
//一个接口,说明这是一个实现该接口的内部类public void windowClosing(WindowEvent e) { //既然是类那里面当然可以有自己的方法了,当然也可以重写父类的方法
disconnect();
System.exit(0);
} }
//一个接口,说明这是一个实现该接口的内部类windowAdapter不是接口啊
内部匿名类new 后面到底是什么类型?new出来的又是什么?
花括号里的内容是对这个抽象类的继承和实现。
我的这个帖子里有说明
http://topic.csdn.net/u/20080728/20/d60f719a-c103-44b8-8d0c-bc1c818b768a.html
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
disconnect();
System.exit(0);
}
}
);这是创建一个继承自类 WindowAdapter 的子类(匿名局部内部类)同时覆盖 WindowAdapter 的 windowClosing 方法,并同时创建这个匿名类的一个实例(现在不创建以后就没机会了,因为这个类没名儿)。
这样理解对吗?
好像是可以这么理解的
花括号里面是这个类(WindowAdapter)的复用(实现).
只是这个类没有名字.
如果你不想这样做,你也可以给它起个名字.class ClassName implements WindouAdapter
{
public void windowClosing(WindowEvent e)
{
disconnect();
System.exit(0);
}
}
this.addWindowListener(new ClassName());这样的效果是一样的.
{
public void windowClosing(WindowEvent e)
{
disconnect();
System.exit(0);
}
}
this.addWindowListener(new ClassName());