A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张明星 中级黑马   /  2012-3-28 18:07  /  1988 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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("我被打开啦.........");
                        }
为什么这句我运行时没打印出结果?

2 个回复

倒序浏览
本帖最后由 田啸 于 2012-3-28 19:48 编辑

WindowAdapter 中的windowOpened(WindowEvent e) 方法复写了WindowListener 中的 windowOpened方法,该事件监听是在窗口首次变为可见时调用。
如果你在添加此监听之前就已经把窗口设置为可视,就无法触发此事件
因此,把 f.setVisible(true);放到添加该监听 f.addWindowListener()之后即可.
回复 使用道具 举报
WindowAdapter是复写了WindowListener接口中的,此方法在窗口首次变为可见时调用。你的监听应该在窗口被可视化之前。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马