作者AI3767 (星泉幼子)
看板java
标题Re: [问题] 把JDialog或JFrame关闭的方法
时间Wed Jun 3 03:31:42 2009
※ 引述《kkman0120 (kk)》之铭言:
: 我想问有没有除了按下右上角的x以外
: 能直接把整个Frame或Dialog真正关闭的方法
: 我有用过dispose()
: 但是我发现他的作用跟右上角x一样
: 好像只是把整个视窗给隐藏而没有真正关闭
: 因为我有打开工作管理员
: 发现他其实还是在执行的
: 请问真的是这样吗?
: 还是有什麽方法可以做到真的把他关闭呢?
"真正关闭"
如果说 是工作管理员看不到那个程序,
那就是整个关掉了啊, System.exit() 的呼叫就是了
如果说 是某个JFrame给关闭掉, 但不是隐藏掉
那就是 JFrame的物件 去呼叫 .dispose()
一般JFrame在没有给定下, 按右上角的X, 只算是隐藏掉
如同 .setVisible(false) 一样
import java.awt.event.*;
import javax.swing.*;
class Dispose {
public static void main(String[] args) {
final JFrame jj = new JFrame();
jj.setSize(400,300);
jj.setVisible(true);
//jj.dispose();
} //{END main}
} //{END class} Dispose
如果 jj.dispose(); 没被执行, 而去按了jj视窗右上角的X
整个程式还不会结束, 表示jj只是隐藏了
但若是有执行 jj.dispose(); 则jj会直接被关闭,
而且整个程式也结束, 表示jj真的关闭了
要改变JFrame右上角X的作用, 就去呼叫 .setDefaultCloseOperation()
从API上可以知道, 预设是使用 HIDE_ON_CLOSE
可以依需求改成 DO_NOTHING_ON_CLOSE, DISPOSE_ON_CLOSE, 或 EXIT_ON_CLOSE
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.127.21.174
1F:→ kkman0120:我是有好几个Frame 但是只要关闭某几个而移没有要整个程 06/03 17:58
2F:推 kkman0120:程式都结束掉 如我那篇文章下面的推文那样@@ 06/03 18:01
3F:推 kkman0120:我主要是想作一个按钮 然後按钮按下去就把它给真正关闭 06/03 18:03
4F:推 sbrhsieh:从来没有人搞懂你所谓的"真正关闭"是什麽意思~~~ 06/03 18:05
5F:推 zeat:yourJFrame = null; (误 06/03 18:10
6F:推 kkman0120:所以说是我多疑了嘛...直接dispose()就可以关闭罗 06/03 18:25
7F:→ AI3767:嗯嗯, 正常下, dispose可以关闭掉 06/04 00:51
8F:→ kkman0120:谢谢你@@ 06/06 00:44
9F:→ kkman0120:谢谢AI大 包含上次的问题加上这个你整个帮我好多大忙@@ 06/06 01:45