如何关闭java frame进程
2016-06-12 · 百度知道合伙人官方认证企业
关闭java frame进程的方法是调用关闭的时候执行以下代码:
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
关于EXIT_ON_CLOSE的说明:
EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。
public void exit(int status)通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。此方法从不正常返回。可以将变量作为一个状态码;根据惯例,非零的状态码表示非正常终止。
虚拟机的关闭序列包含两个阶段。
在第一个阶段中,会以某种未指定的顺序启动所有已注册的关闭挂钩(如果有的话),并且允许它们同时运行直至结束。
在第二个阶段中,如果已启用退出终结,则运行所有未调用的终结方法。一旦完成这个阶段,虚拟机就会暂停。
如果在虚拟机已开始其关闭序列后才调用此方法,那么若正在运行关闭挂钩,则将无限期地阻断此方法。如果已经运行完关闭挂钩,并且已启用退出终结 (on-exit finalization),那么此方法将利用给定的状态码(如果状态码是非零值)暂停虚拟机;否则将无限期地阻断虚拟机。
System.exit 方法是调用此方法的一种传统而便捷的方式。
2016-06-08
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import javax.swing.JFrame;
public class FrameTest extends JFrame {
public static void main(String[] args) {
new FrameTest("frame 1");
new FrameTest("frame 2");
new FrameTest("frame 3");
}
public FrameTest(String title) {
this.setTitle(title);
this.setSize(800, 600);
// this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// this.setDefaultCloseOperation(HIDE_ON_CLOSE);
// this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.setVisible(true);
}
}
只要在每个Frame里设定this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);即可。
EXIT_ON_CLOSE,关闭程序。(所有窗口和进程都会关闭)
DISPOSE_ON_CLOSE,只关闭本窗口。
HIDE_ON_CLOSE,只隐藏本窗口,不关闭。
DO_NOTHING_ON_CLOSE,不做任何事,点击关闭无效。
追问:
请问一下:如果本页面有一个关闭按钮,点击该关闭按钮,该窗口关闭,是关闭,不是隐藏,该怎么写代码
追答:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class FrameTest extends JFrame {
public static void main(String[] args) {
new FrameTest("frame 1");
}
public FrameTest(String title) {
this.setTitle(title);
this.setSize(800, 600);
this.setLayout(new FlowLayout());
initPanel();
this.setVisible(true);
}
private void initPanel() {
JButton button = new JButton("关闭");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
this.add(button);
}
}
这很简单,只要调用dispose方法即可。隐藏是setVisible(false)。关闭程序是System.exit(0);