繁体   English   中英

如何打开一个新窗口

[英]How to Open a New Window

我有这样的课:

public class A {
    public static void main() {
        B f1 = new B();
        f1.setVisible(true);
    }

    class B extends JFrame {
        public B() {
            JButton btn = new JButton("click me");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    C f2 = new C();
                    f2.setVisible(true);
                }
            });
            add(btn);
        }
    }

    class C extends JFrame {
        public C() {
            //whatever here
        }
    }
}

当我第一次运行此Java代码时,窗口X包含一个“单击我”按钮。 单击它后,将弹出另一个新窗口Y。 但是问题在于,当我关闭新窗口Y时,旧窗口X会与Y一起自动关闭。 (即它们同时关闭)

我想做的是,当我关闭Y后,X会停留在那儿而不要关闭。 怎么做?

最简单的方法是将this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)放在第二个窗口构造函数中。

其他方式: http : //www.leepoint.net/notes-java/GUI/containers/10windows/12frameclose.html

您将更改setDefaultCloseOperation()方法的参数,该方法定义单击关闭按钮时发生的情况。 在这种情况下,您将使用DISPOSE_ON_CLOSE作为参数。 这两个框架都被丢弃的原因大概是因为您将参数设置为EXIT_ON_CLOSE (如果未明确设置,则为您完成;这是所有框架的默认关闭行为),这终止了整个过程 -这包括所有打开的窗口和框架。 如果您需要进一步的帮助,请询问。 :)

Y框架有哪些DefaultCloseOperation? 它可能是EXIT_ON_CLOSE,因此X和Y一起关闭。将其更改为DISPOSE_ON_CLOSE或保留默认值。 它应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM