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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 金兴 中级黑马   /  2012-4-11 22:40  /  1765 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

做了一个关闭窗体的一个小功能,代码如下::
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. public class TestFrame
  4. {
  5.         public static void main(String [] args)
  6.         {
  7.                 Frame f=new Frame("窗体测试窗口");
  8.                 f.setSize(500,300);
  9.                 f.setVisible(true);
  10.                 f.addWindowListener(new MyWindowListener());
  11.         }
  12. }
  13. class MyWindowListener implements WindowListener
  14. {
  15.         public void windowClosing(WindowEvent e)
  16.         {
  17.                 e.getWindow().setVisible(false);
  18.                 ((Window)e.getComponent()).dispose();
  19.                 System.exit(0);
  20.         }
  21.         public void windowActivated(WindowEvent e){}
  22.         public void windowClosed(WindowEvent e){}
  23.         public void windowDeactivated(WindowEvent e){}
  24.         public void windowDeiconified(WindowEvent e){}
  25.         public void windowIconified(WindowEvent e){}
  26.         public void windowOpened(WindowEvent e){}
  27. }
复制代码
我的疑问是我只想调用关闭的功能,那么只调用windowClosing()这个方法就可以了,为什么还要调用以下方法呢 ??
public void windowActivated(WindowEvent e){}
        public void windowClosed(WindowEvent e){}
        public void windowDeactivated(WindowEvent e){}
        public void windowDeiconified(WindowEvent e){}
        public void windowIconified(WindowEvent e){}
        public void windowOpened(WindowEvent e){}

3 个回复

正序浏览
public void windowActivated(WindowEvent e){}

22.        public void windowClosed(WindowEvent e){}

23.        public void windowDeactivated(WindowEvent e){}

24.        public void windowDeiconified(WindowEvent e){}

25.        public void windowIconified(WindowEvent e){}

26.        public void windowOpened(WindowEvent e){}

没必要写这些空的监听事件,用不到就不写,提供这个接口就是为了方便使用的。
回复 使用道具 举报
想要实现WindowListener接口就必须实现它的所有抽象方法

想只复写windowClosing()这一个方法就可以关闭窗口可以使用以下代码

import java.awt.*;

import java.awt.event.*;

public class TestFrame{

        public static void main(String [] args){

                Frame f=new Frame("窗体测试窗口");

                f.setSize(500,300);

                f.setVisible(true);

               f.addWindowListener(new WindowAdapter() {
                       
                        public void windowClosing(WindowEvent e) {
                               
                                Frame frame = (Frame) e.getSource();
                                frame.dispose();
                        }
                       
                });
        }
}
回复 使用道具 举报
处理窗口事件的类要么实现此接口(及其包含的所有方法)),要么扩展抽象类 WindowAdapter(仅重写所需的方法)。
因为你的MyWindowListener 实现了WindowListener接口。,所以你要复写里面的全部抽象方法。
你如果只想调用关闭的功能可以扩展抽象类WindowAdapter(仅重写所需的方法)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马