黑马程序员技术交流社区

标题: 关于GUI中windowActivated的问题 [打印本页]

作者: FFF    时间: 2013-12-12 21:44
标题: 关于GUI中windowActivated的问题
本帖最后由 FFF 于 2013-12-12 22:33 编辑

为什么windowOpened没有触发成功?没有打印出Open来?
代码:
  1.         public static void main(String[] args) {
  2.                 Frame fa = new Frame("my awt");

  3.                 fa.setSize(600, 500);
  4.                 fa.setLocation(380, 130);
  5.                 fa.setLayout(new FlowLayout());

  6.                 Button bu = new Button("窗体");
  7.                 fa.add(bu);
  8.                 fa.setVisible(true);

  9.                 fa.addWindowListener(new WindowAdapter() {
  10.                         public void windowClosing(WindowEvent e) {
  11.                                 System.out.println("Close");
  12.                                 System.exit(0);
  13.                         }

  14.                         public void windowActivated(WindowEvent e) {
  15.                                 System.out.println("焦点");
  16.                         }

  17.                         public void windowOpened(WindowEvent e) {// 为什么这里没有触发成功没有打印Open
  18.                                 System.out.println("Open");
  19.                         }
  20.                 });
  21.         }
复制代码




作者: 風諾    时间: 2013-12-12 21:59
对于windowOpened(WindowEvent e)方法,我查看了API文档,描述是:当窗口第一次设为可见的时候,调用该方法
那么你这里先设置了fa.setVisible(true);然后才添加了监听器,根据从上到下执行,设置可见的时候,还没有设置该监听器,因此没有打印
至于你的主类名Frame和java.awt.Frame名称重复,我就不知道有没有问题了
作者: FFF    时间: 2013-12-12 22:02
本帖最后由 FFF 于 2013-12-12 22:03 编辑
風諾 发表于 2013-12-12 21:59
对于windowOpened(WindowEvent e)方法,我查看了API文档,描述是:当窗口第一次设为可见的时候,调用该方法 ...

确定是这样呢~
还有~请不要在意名字重复的细节~哈哈~
作者: 潘金锋    时间: 2013-12-12 22:04
代码没贴全,亲。




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