黑马程序员技术交流社区
标题:
关于窗口监听器问题,各位轻拍
[打印本页]
作者:
陈腾跃_2013
时间:
2013-3-28 20:54
标题:
关于窗口监听器问题,各位轻拍
本帖最后由 陈腾跃_2013 于 2013-3-29 21:34 编辑
心血来潮,发现,如果将setVisible()方法放在监听器之前,那么“opening”是不会输出的。
1、我可以理解成这个时候监听器还没有载入么(应该是这样吧)
2、“closing”有输出,那么这个时候监听器是作为一个进程在“监听”这个事件吗?监听器在内存中?
如果是,那么监听器什么时候释放呢?
测试用的简单代码
package cty.show;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemo {
public static void main(String[] args)
{
Frame myFrame = new Frame("Demo");
myFrame.setSize(500, 400);
myFrame.setLayout(new FlowLayout());
System.out.println("Hello");
myFrame.setVisible(true);
//匿名内部类直接调用监听器
myFrame.addWindowListener(new WindowAdapter(){
public void windowOpened(WindowEvent e)
{
System.out.println("opening");
}
public void windowClosing(WindowEvent e)
{
System.out.println("closing");
System.exit(0);
}
});
//myFrame.setVisible(true);
}
}
复制代码
作者:
陈腾跃_2013
时间:
2013-3-29 21:34
额,鉴于上面有人提了相同的问题,本帖又没人回复,还是改成已解决吧。{:soso_e109:}
作者:
tshch1989
时间:
2013-3-29 21:42
我是这样理解的,windowOpened这是一个动作,在本例就是窗口由无到有,只有发生了这个动作才能触发监视器,把显示放在前面后,窗口已经打开,加在window上的开启剑士器没有被触发
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2