簡體   English   中英

如何關閉JFrame?

[英]How to close JFrame?

我有主要的應用框架。 如果用戶單擊按鈕,他將獲得一個新框架,其中包含一些圖表。 現在,如果我要關閉該圖表,則圖表和主應用程序都會關閉。 我如何區分這兩個結尾。 當然,我不希望在關閉放置圖表的框架后關閉我的應用程序。 這是圖表框架的代碼。

chartBttn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                final ShowChart sc = new ShowChart("Reserve Selection", getUtilExperiments() );
                sc.pack();
                RefineryUtilities.centerFrameOnScreen(sc);
                sc.setVisible(true);
                sc.setDefaultCloseOperation(ShowChart.DISPOSE_ON_CLOSE);

            }
        });

您可以使用dispose()方法。 或者您可以調用setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 在JFrame上。

如果我正確理解了您在新的JFrame上使用的關閉按鈕或X窗口按鈕的構建方法,請執行以下操作:

setVisible(false); 
dispose();

否則,請發布您的代碼以創建新的JFrame等。

當然,我不希望在關閉放置圖表的框架后關閉我的應用程序。

1)不要動態創建大量JFrames ,僅創建一次JFrame ,然后將其重新用於下次使用,然后

  • 僅使用setDefaultCloseOperation(JFrame.NOTHING_ON_CLOSE)調用可見性setVisible(false/true) setDefaultCloseOperation(JFrame.NOTHING_ON_CLOSE)

或非常簡單的解決方法

  • setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE)

2)或帶有setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE) JDialog

3) 注意:但是在這種情況下,無法關閉當前的JVM實例,您必須添加JButton or JMenu/JMenuItem來加速System.exit(1)

只需使用super.dispose(); 用於關閉上一個jframe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM