Re: [問題] 把JDialog或JFrame關閉的方法
※ 引述《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
→
06/03 17:58, , 1F
06/03 17:58, 1F
推
06/03 18:01, , 2F
06/03 18:01, 2F
推
06/03 18:03, , 3F
06/03 18:03, 3F
推
06/03 18:05, , 4F
06/03 18:05, 4F
推
06/03 18:10, , 5F
06/03 18:10, 5F
推
06/03 18:25, , 6F
06/03 18:25, 6F
→
06/04 00:51, , 7F
06/04 00:51, 7F
→
06/06 00:44, , 8F
06/06 00:44, 8F
→
06/06 01:45, , 9F
06/06 01:45, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):