在学到Java中的面向窗口编程时,编写一个window窗口首先会用到java.awt.Frame类,但是我们会发现编写出来的窗口可以最小化,可以最大化,但是就是不能关闭,代码如下:
package com.cal.listener; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class FrameDemo { public static void main(String[] args) { Frame f = new Frame("伍金凡");//事件源 f.setSize(600, 400); f.setVisible(true);
}
图形如下:}
要想关闭这个窗口则必须在任务管理器中点击关闭,不是太人性化。
但是用到监听器之后点击关闭就可以直接关闭了。原理是这样的:可以把这个窗口看作是一个时间源,然后我们注册一个监听器:去监听这个事件,然后去重写他的public void windowClosing即可。
代码如下:
package com.cal.listener; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class FrameDemo { public static void main(String[] args) { Frame f = new Frame("我的窗体");//事件源 f.setSize(600, 400); f.setVisible(true);
f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { Frame ff = (Frame)e.getSource(); ff.dispose();//关闭窗口 } });
}
此时点击关闭按钮即可关闭。}