【问题标题】:How to open a new Window after y close a first one?关闭第一个窗口后如何打开一个新窗口?
【发布时间】:2012-11-23 23:33:07
【问题描述】:

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

【问题讨论】:

标签: java swing window frame


【解决方案1】:

打开和关闭窗口并不复杂,只涉及创建窗口实例(例如 JFrame 或 JDialog)并在它们上调用 setVisible(true)setVisible(false)。但是话虽如此,您使用了多少商业应用程序来随意向用户抛出窗口?很少,因为它是用户界面的噩梦。取而代之的是,帮您的用户一个忙,并使用 CardLayout 交换视图,对于您偶尔需要以模态方式获取信息的情况,请使用模态对话框,例如设置为模态的 JDialog 或 JOptionPane。

【讨论】:

    【解决方案2】:

    我认为您可以通过在 (Next) 按钮的 ActionListener 方法中键入以下几行来做到这一点:

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

    dispose(); 行将关闭您之前的窗口,并且假设名为 NewJFrame 的另一个新窗口将由这两行打开

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

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

    【讨论】:

      【解决方案3】:

      这段代码只成功了一半。

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

      【讨论】:

      • 我不确定您的回答是否相关。您的代码看起来像 C#,因为它使用 is 运算符,在新行上有 {s,并且方法名称以大写字母开头。但是,这是一个 Java 问题。
      猜你喜欢
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2018-05-02
      相关资源
      最近更新 更多