Java 如何在关闭第一个窗口后打开新窗口?

Java 如何在关闭第一个窗口后打开新窗口?,java,swing,window,frame,Java,Swing,Window,Frame,我在这个程序中工作,在这个程序中,用户被询问不同类型的数据,但每种类型的数据取决于以前的数据。所以我创建了三个框架,在其中我放置了第一个测验,现在我想打开一个新窗口,当用户按下一个按钮(下一步),同时关闭第一个窗口。到目前为止,我尝试的是在用户按下按钮(Next)时更改布尔变量,但是,我不知道如何从新类引用最后一个变量。我把问题放在上下文中,因为你可以给我一个更好的方法来解决这个问题。打开和关闭窗口并不复杂,只需要创建窗口实例(如JFrame或JDialog)并调用setVisible(true

我在这个程序中工作,在这个程序中,用户被询问不同类型的数据,但每种类型的数据取决于以前的数据。所以我创建了三个框架,在其中我放置了第一个测验,现在我想打开一个新窗口,当用户按下一个按钮(下一步),同时关闭第一个窗口。到目前为止,我尝试的是在用户按下按钮(Next)时更改布尔变量,但是,我不知道如何从新类引用最后一个变量。我把问题放在上下文中,因为你可以给我一个更好的方法来解决这个问题。

打开和关闭窗口并不复杂,只需要创建窗口实例(如JFrame或JDialog)并调用
setVisible(true)
setVisible(false)
。但话虽如此,在windows被随意扔给用户的情况下,您使用了多少商业应用程序?很少,因为这是一个用户界面的噩梦。相反,帮你用户的忙,用CardLayout交换视图,对于偶尔需要以模态方式获取信息的情况,使用模态对话框,例如将JDialog设置为模态或JOptionPane。

我认为你可以通过在(下一步)按钮的ActionListener方法中键入以下行来实现:

dispose();
NewJFrame n = NweJFrame();
n.setVisible(true);
dispose()将关闭上一个窗口,另一个名为NewJFrame的新窗口将通过这两行打开

NewJFrame n = NweJFrame();
n.setVisible(true);

但在此之前,您必须像为上一个窗口编写代码一样编写NewJFrame的代码

这段代码只成功了一半

Form2 f2 = new Form2();
if (f2 is Form2)
{
    f2.Show();
    this.Close();
}
else 
{
    Form1 f1 = new Form1();
    f1.Show();
}

“所以我创建了三个框架,……”我不确定你的答案是否相关。您的代码看起来像C#,因为它使用了
is
操作符,在新行上有
{
s,并且方法名以大写字母开头。但是,这是一个Java问题。