繁体   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