黑马程序员技术交流社区

标题: 窗体事件的一个问题 [打印本页]

作者: 张明星    时间: 2012-3-28 18:07
标题: 窗体事件的一个问题
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. class AwtDemo
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 Frame f = new Frame("my awt");               
  8.                 f.setSize(500,400);
  9.                 f.setLayout(new FlowLayout());
  10.                 f.setVisible(true);
  11.                 f.addWindowListener(new WindowAdapter()
  12.                 {
  13.                         public void windowClosing(WindowEvent e)
  14.                         {
  15.                                 System.out.println("我关");
  16.                                 System.exit(0);
  17.                         }
  18.                         public void windowOpened(WindowEvent e)
  19.                         {
  20.                                 System.out.println("我被打开啦.........");
  21.                         }
  22.                         public void windowActivated(WindowEvent e)
  23.                         {
  24.                                 System.out.println("我开启啦");
  25.                         }                       
  26.                 });
  27.                 }
  28. }
复制代码
public void windowOpened(WindowEvent e)
                        {
                                System.out.println("我被打开啦.........");
                        }
为什么这句我运行时没打印出结果?
作者: 田啸    时间: 2012-3-28 19:30
本帖最后由 田啸 于 2012-3-28 19:48 编辑

WindowAdapter 中的windowOpened(WindowEvent e) 方法复写了WindowListener 中的 windowOpened方法,该事件监听是在窗口首次变为可见时调用。
如果你在添加此监听之前就已经把窗口设置为可视,就无法触发此事件
因此,把 f.setVisible(true);放到添加该监听 f.addWindowListener()之后即可.
作者: 刘元明    时间: 2012-3-28 19:48
WindowAdapter是复写了WindowListener接口中的,此方法在窗口首次变为可见时调用。你的监听应该在窗口被可视化之前。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2