JFrame Frame 窗口关闭

JFrame是Frame的子类,即JFrame继承自Frame。

JFrame是javax.swing.JFrame的类,Frame是java.awt.Frame的类。

类似的还有JButton、Button,JComboBox,ComboBox等,总的来说swing是awt的升级,带J的是不带J的升级版。

1.JFrame关闭方式:

设置用户在此窗体上发起 "close" 时默认执行的操作。必须指定以下选项之一:

  • DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing方法中处理该操作。
  • HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。
  • DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。
  • EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。

默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为 "defaultCloseOperation"。

代码示例:

 1 package ss;
 2 
 3 import javax.swing.JFrame;
 4 
 5 public class JFrameClose {
 6     
 7     private JFrame jf;
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10         new JFrameClose();
11     }
12     
13     public JFrameClose(){
14         jf=new JFrame();
15         jf.setBounds(100, 100, 200, 200);
16 //        jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//不执行任何操作
17 //        jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//隐藏并释放内存,并不一定结束整个应用程序
18         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出应用程序
19         jf.setVisible(true);
20         
21         
22     }
23 
24 }
View Code

2.Frame关闭方式:

通过添加监听的方式

代码示例:

package tst;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
          JFrame f = new JFrame();
          f.setTitle("Closing Frame with Window Listener");
          f.setBounds(100,50,500,300);
          f.addWindowListener(new MyWindowListener());
          f.setVisible(true);
    }
     static class MyWindowListener extends WindowAdapter {

        @Override
        public void windowClosing(WindowEvent e) {
            // TODO Auto-generated method stub
                 System.exit(0);
        }
         
       }
    
    }
View Code
原文地址:https://www.cnblogs.com/hebiao/p/9517281.html