JFrame怎样关闭

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JFrame怎样关闭相关的知识,希望对你有一定的参考价值。

我用System.exit(1);不行啊。
应该在什么地方写什么代码才行??
下面第二个回答完全错误,
第三个回答没有说清楚,只是说使用那个方法,但没说在哪里使用这个方法,以及这个方法属于哪个类,还有方法的参数不是int型的吗,怎么用了字符串啊??

JFrame的关闭不像Frame,点关闭按钮自己会关闭,但是那样做不好.可以用setDefaultCloseOperation(int operation);
其中operation有以下几种
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE

给你一个例子,看一下就明白了
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class NewTaskFrame extends JFrame
/**
*
*/
private static final long serialVersionUID = 1L;

public static void main(String[] args)

NewTaskFrame newframe = new NewTaskFrame("新建下载任务");
newframe.setSize(600,300);
newframe.setLayout(null);
newframe.setResizable(false);
newframe.setLocation(300, 300);

newframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
newframe.getContentPane().setBackground(Color.LIGHT_GRAY);
newframe.setVisible(true);


public NewTaskFrame (String str)

super(str);



public void setDefaultCloseOperation(int operation)设置用户在此窗体上发起 "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"。
参考技术A JFrame关闭像Frame点关闭按钮自关闭做.用setDefaultCloseOperation(int operation);
其operation几种
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE

给例看明白
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class NewTaskFrame extends JFrame
/**
*
*/
private static final long serialVersionUID = 1L;

public static void main(String[] args)

NewTaskFrame newframe = new NewTaskFrame("新建载任务");
newframe.setSize(600,300);
newframe.setLayout(null);
newframe.setResizable(false);
newframe.setLocation(300, 300);

newframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
newframe.getContentPane().setBackground(Color.LIGHT_GRAY);
newframe.setVisible(true);


public NewTaskFrame (String str)

super(str);



public void setDefaultCloseOperation(int operation)设置用户窗体发起 "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更改属性值导致激发属性更改事件其属性名称
参考技术B System.exit(0);是强制关闭.但是你现在要关的是JFrame.

举个例子:假如你现在做了个窗体是用来登陆的,如果你登陆成功了,这时

候我们肯定要把当前的登陆窗体关闭掉.再打开新的窗体.

当前类的类名.this.dispose();//关闭当前窗体

你提到在哪里写代码.给你个思路,还是这个例子,当你登陆的时候,你肯定是通过点击按钮调用判断登陆方法的.所以...只有你登陆成功后才能关闭当前这个JFrame.不明白的话请继续将问题补充.
参考技术C 在继承JFrame的那个类的构造方法里加setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);就可以了 参考技术D JFarme frame=new JFrame;
frame.setVisible(false);
或注册下监控
frame.addWindowListener(new WindowAdapter()

public void windowClosing(WindowEvent e)

System.exit(0);

);

以上是关于JFrame怎样关闭的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮关闭 JFrame [重复]

用“真的很接近吗?”关闭 JFrame对话

如何捕获 JFrame 的关闭按钮单击事件?

JFrame Frame 窗口关闭

如何捕获JFrame的关闭按钮单击事件?

如何在打开另一个JFrame时关闭JFrame? [重复]