2009-12-17 97 views
0

我如何關閉一個框架,但打開一個新的框架?我如何關閉一個框架,但打開一個新的框架?

我有一個框架,(幫助)

當我點擊我的菜單項 我想打開(MainForm的)從幫助 退出。

new mainForm().setVisible(true); System.exit(0);

我知道但是這一關整個程序我如何得到它只是關閉當前幀

感謝

+1

也許你需要從extraneon的評論中發佈引用你的'幫助'框架的整個代碼 – TStamper 2009-12-17 12:51:42

+0

@ Tuffy-,它不確定你的代碼實際上是從'main'還是'help'做的,你也可以郵政編碼爲那些創建框架 – TStamper 2009-12-17 13:00:30

回答

6

如果不再想使用的框架,你可以使用frame.dispose()

如果你只想隱藏它使用frame.setVisible(false)

如果您擴展了一個Frame並試圖使用this.disposethis.setVisible(false)來關閉它。

1

我想你應該隱藏你不希望出與框架調用setVisible(假)。 System.exit(0)停止JVM結束整個程序。

簡而言之,setVisible的語義與啓動/停止應用程序無關。

如果你想開始一個新的應用程序,你必須看看Runtime.exec()。我真的不知道你是否可以用exit()關閉父進程(幫助應用程序)。

+0

我想我可能會困惑你。 這裏是場景。 我在幫助我點擊它說主要菜單欄。當主要被點擊時,我希望它顯示主要和隱藏幫助。 如果我將它設置爲false,它也會隱藏主要的 – 2009-12-17 12:36:16

+0

對於Frame沒有exit()方法。 '退出'是爲整個系統 – TStamper 2009-12-17 12:56:23

+0

我知道。我想知道是否可以從JVM中啓動一個新進程,然後關閉當前進程,同時不殺死新啓動的進程。 – extraneon 2009-12-17 13:01:51

1

比方說,你創建你的幀像這樣:

JFrame mainframe = new JFrame("Radio Notes"); 
//show Frame 
mainframe.setVisible(true); 
//close the frame 
mainframe.dispose(); 
+0

它不是主框架試圖擺脫,它的幫助。當我做help.dispose();它不起作用 – 2009-12-17 12:42:15

+0

主機只是一個創建框架的例子,如果你命名了框架幫助,那麼yes help.dispose會關閉它;例如,如果您創建了一個框架:JFrame help = new JFrame(「help」);那麼help.dispose()會關閉它 – TStamper 2009-12-17 12:45:06

3

你應該重新考慮你的質量要求。對於用戶來說,最好同時顯示程序和幫助窗口。顯示幫助屏幕時關閉主窗口,反之亦然確實非常糟糕可用性 - 您不應該這樣做。我們已經有了近30年的基於窗口的圖形用戶界面 - 同時在屏幕上顯示幾個窗口就是它們的用途!

+0

謝謝。 我會接受你的建議 – 2009-12-18 10:55:56

0

嘗試像這樣設置JFrame的默認關閉操作。

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 

然後執行一個WindowListener,它執行窗口關閉事件觸發時所需的操作。

相關問題