class MyFrame extends Frame{
ArrayList<Point> list=new ArrayList<Point>();//泛型
public MyFrame(){
setBounds(0,0,400,300);
setVisible(true); this.addWindowListener(new WindowAdapter(){//窗口事件
public void windowClosing(WindowEvent e){
setVisible(false);
System.exit(0);
}
});
}
如题
是给窗体add的window事件。当点击右上角X时,出发windowClosing事件,执行事件方法内容。
为什么在内部类中 会是有MyFrame调用了?
内部类可以直接访问它的外围类的成员的。这个setVisible(boolean b)方法就是其外围类MyFrame从Frame继承来的。
不信你在内部类里定义一个setVisible(boolean b)方法,让它显示一个输出,测试一下那个窗口还关吗?
package csdn.awt;
import java.awt.*;
import java.awt.event.*;
import java.util.*;class CsdnMyFrame extends Frame
{
ArrayList<Point> list=new ArrayList<Point>();//泛型
public CsdnMyFrame()
{
setBounds(0,0,400,300);
this.setVisible(true); this.addWindowListener(new WindowAdapter()
{//窗口事件
public void windowClosing(WindowEvent e)
{
setVisible(false);
System.exit(0);
}
public void setVisible(boolean b)
{
System.out.println("我是"+this);
}
});
}
}