如何关闭JFrame?

时间:2011-12-12 11:23:25

标签: java swing 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);

            }
        });

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

如果我在您的新JFrame上正确理解了您的关闭按钮或X窗口按钮的方法:

setVisible(false); 
dispose();

否则请在创建新JFrame等时发布您的代码。

答案 2 :(得分:3)

  

当然,在关闭我放图表的框架之后,我不希望我的申请被关闭。

1)不要动态创建大量JFrames,只创建一次JFrame并重新使用它以供下次使用,然后

  • 仅针对setVisible(false/true)
  • 的可见性setDefaultCloseOperation(JFrame.NOTHING_ON_CLOSE)致电

或非常简单的解决方法

  • setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE)

2)或JDialogsetDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE)

3)注意:但是在这种情况下无法关闭当前的JVM实例,您必须添加JButton or JMenu/JMenuItem加速System.exit(1)

答案 3 :(得分:0)

只需使用super.dispose();来关闭之前的jframe