我如何關閉一個框架,但打開一個新的框架?我如何關閉一個框架,但打開一個新的框架?
我有一個框架,(幫助)
當我點擊我的菜單項 我想打開(MainForm的)從幫助 退出。
new mainForm().setVisible(true); System.exit(0);
我知道但是這一關整個程序我如何得到它只是關閉當前幀
感謝
我如何關閉一個框架,但打開一個新的框架?我如何關閉一個框架,但打開一個新的框架?
我有一個框架,(幫助)
當我點擊我的菜單項 我想打開(MainForm的)從幫助 退出。
new mainForm().setVisible(true); System.exit(0);
我知道但是這一關整個程序我如何得到它只是關閉當前幀
感謝
如果不再想使用的框架,你可以使用frame.dispose()
如果你只想隱藏它使用frame.setVisible(false)
。
如果您擴展了一個Frame並試圖使用this.dispose
或this.setVisible(false)
來關閉它。
我想你應該隱藏你不希望出與框架調用setVisible(假)。 System.exit(0)停止JVM結束整個程序。
簡而言之,setVisible的語義與啓動/停止應用程序無關。
如果你想開始一個新的應用程序,你必須看看Runtime.exec()。我真的不知道你是否可以用exit()關閉父進程(幫助應用程序)。
比方說,你創建你的幀像這樣:
JFrame mainframe = new JFrame("Radio Notes");
//show Frame
mainframe.setVisible(true);
//close the frame
mainframe.dispose();
它不是主框架試圖擺脫,它的幫助。當我做help.dispose();它不起作用 – 2009-12-17 12:42:15
主機只是一個創建框架的例子,如果你命名了框架幫助,那麼yes help.dispose會關閉它;例如,如果您創建了一個框架:JFrame help = new JFrame(「help」);那麼help.dispose()會關閉它 – TStamper 2009-12-17 12:45:06
你應該重新考慮你的質量要求。對於用戶來說,最好同時顯示程序和幫助窗口。顯示幫助屏幕時關閉主窗口,反之亦然確實非常糟糕可用性 - 您不應該這樣做。我們已經有了近30年的基於窗口的圖形用戶界面 - 同時在屏幕上顯示幾個窗口就是它們的用途!
謝謝。 我會接受你的建議 – 2009-12-18 10:55:56
嘗試像這樣設置JFrame的默認關閉操作。
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
然後執行一個WindowListener,它執行窗口關閉事件觸發時所需的操作。
也許你需要從extraneon的評論中發佈引用你的'幫助'框架的整個代碼 – TStamper 2009-12-17 12:51:42
@ Tuffy-,它不確定你的代碼實際上是從'main'還是'help'做的,你也可以郵政編碼爲那些創建框架 – TStamper 2009-12-17 13:00:30