package org.eclipsebook.ch06;import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JFrame;
import javax.swing.JPanel;public class Ch06_03 extends JFrame {
Panel p;
public Ch06_03(){
super("Swing application");
Container contentPane = getContentPane();
p = new Panel();
contentPane.add(p);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final JFrame f = new Ch06_03();
f.setBounds(100, 100, 300, 300);
f.setVisible(true);
f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});//上面的这种方式怎么还要来个WindowListener呢???
//与这个JFrame.EXIT_ON_CLOSE有什么不同么/这个没有加监听器的,
//(我试了试把那个监听器注释掉后,仍可用,就是按下关闭后反应慢些)以前没认真想过的。
}}
class Panel extends JPanel{
Panel(){
setBackground(Color.white);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello from Eclipse", 60, 100);
}
}
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JFrame;
import javax.swing.JPanel;public class Ch06_03 extends JFrame {
Panel p;
public Ch06_03(){
super("Swing application");
Container contentPane = getContentPane();
p = new Panel();
contentPane.add(p);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final JFrame f = new Ch06_03();
f.setBounds(100, 100, 300, 300);
f.setVisible(true);
f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});//上面的这种方式怎么还要来个WindowListener呢???
//与这个JFrame.EXIT_ON_CLOSE有什么不同么/这个没有加监听器的,
//(我试了试把那个监听器注释掉后,仍可用,就是按下关闭后反应慢些)以前没认真想过的。
}}
class Panel extends JPanel{
Panel(){
setBackground(Color.white);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello from Eclipse", 60, 100);
}
}
解决方案 »
- 对于类似三国杀的游戏我该怎么设计
- 请各位高手看一下,就一下
- eclipse环境下如何创建java applet程序
- 请问一下学swt除了看Eclipse的帮助外,还有没有什么好的资料?/
- Eclipse插件
- 我想把一个Map里的数据序列化可以吗
- 大家好,今天做游戏,遇到JAVA的编程问题,不懂不懂,请大家帮我!
- 如何将jFileChooser的过滤器中的“所有文件”选项去掉??——在线等待中。。。
- 类的方法和实例方法,类字段和实例字段有什么不同,在使用上?
- 请问jar命令中‘指定文件清单(mainfest)’文件的格式!
- 新手咨询---在线等待
- 用HttpClient访问网页不成功,麻烦帮我看下程序
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
这个WindowAdapter中实现了windowClosing方法,也就是说在这个窗口将被关闭时,执行System.exit(0);
结束整个应用程序!
但加了adapter之后,作用就是在closing事件的时候就退出,并不是在closed事件才退出
所以时间延长了是很正常的行为
那么Closing与Closed有什么不同呢????
区别在于:
1: 设置JFrame .setDefaultCloseOperation(...);
如果项目中同时打开几个JFrame 关闭任何一个所有的JFrame将全部关闭,
2: f.addWindowListener(new WindowAdapter(){ ...});
只关闭当前的窗体。