设计一个表单来调用另一个表单而不是在子表单关闭后退出

时间:2012-06-14 20:42:46

标签: java swing netbeans jframe

我是NetBeans和GUI开发的新手。我想知道如何设计一个主菜单,其中包含打开其他表单的菜单。我知道如何使用按钮和事件监听器(actionperformed)设计表单,如下所示:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
       new SeconfFrame().setVisible(true);        // TODO add your handling code here:
}

当按下按钮时,这将调用第二帧,但是当我退出第二帧时,第一帧也会消失。不酷。我怎样才能让第一帧(主要的)保持不动?

3 个答案:

答案 0 :(得分:2)

  

当按下按钮时,这将调用第二帧,但是当我退出第二帧时,第一帧也会消失。不酷。我怎样才能让第一帧(主要的)保持不动?

您必须将setDefaultCloseOperations(EXIT_ON_ClOSE)更改为HIDE_ON_CLOSE

  

想知道如何设计一个包含打开其他表单的菜单的主表单。

使用CardLayout而不是打扰Top-Level Containers

答案 1 :(得分:2)

建议:

  • 如果必须有一个窗口打开另一个窗口,请将从属窗口设置为对话窗口,例如JDialog或JOptionPane。这样做,您不必担心JVM退出。
  • 是的,JDialog可以像任何 JFrame一样保持GUI的复杂性。
  • 话虽如此,你不希望有一个应用程序有很多窗口进出视图。如果您这样做,请重新考虑您的设计,包括使用CardLayout作为mKorbel建议。

答案 2 :(得分:1)

在相关JFrame的“属性”标签上转到标签:设置'默认关闭操作'(列表顶部)并将其从'EXIT_ON_CLOSE'更改为'DISPOSE',请参阅:DISPOSE_ON_CLOSE