黑马程序员技术交流社区
标题:
窗体监视事件的问题,求解惑。谢谢
[打印本页]
作者:
何仕映
时间:
2013-5-16 12:54
标题:
窗体监视事件的问题,求解惑。谢谢
本帖最后由 何仕映 于 2013-5-16 13:12 编辑
在下面的程序中定义了一个监视器,监视了三个动作。但是为什么windowOpened监视器不起作用呢?应该在窗口打开的时候,就会执行对应的操作啊。但是结果为什么那个监视器不起任何作用呢?
package com.itcast;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AwtDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//新建一个边框,设置属性(大小、位置)并添加布局管理器
Frame frame = new Frame("My Awt");
frame.setSize(500,400);
frame.setLocation(200,200);
frame.setVisible(true);
frame.setLayout(new FlowLayout());
//新建一个按钮并添加到窗体
Button button = new Button("YES");
frame.add(button);
//为窗体添加监视器
frame.addWindowListener(new MyLister());
}
}
//定义监视器,监视关闭、打开、变为活动窗口的操作
class MyLister extends WindowAdapter {
//监视关闭
public void windowClosing(WindowEvent e){
System.out.println(e.toString());
System.exit(0);
}
//监视变为当前活动窗口
public void windowActivated(WindowEvent e){
System.out.println("Activeated");
}
//监视打开
public void windowOpened(WindowEvent e){
System.out.println("打开了");
}
}
复制代码
作者:
SOAR
时间:
2013-5-16 13:09
windowOpened
是
响应窗口首次变为可见
时调用。
而你是在 frame.setVisible(true);
之后
才注册的窗口事件所以这个事件不会响应。
你把frame.addWindowListener(new MyLister());写在 frame.setVisible(true);
之前
看看。
作者:
何仕映
时间:
2013-5-16 13:12
SOAR 发表于 2013-5-16 13:09
windowOpened
是响应窗口首次变为可见时调用。
而你是在 frame.setVisible(true);之后才注册的窗口事件所 ...
果然是如此,一针见血,谢谢。
作者:
施大勇
时间:
2013-9-18 17:33
frame.setVisible(true);
发常放在最后。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2