请帮我保持主窗口打开

时间:2012-06-21 16:20:06

标签: java swing jframe

我有一个主窗口,打开另一个窗口。我想关闭此窗口并保持主窗口打开,但它也会关闭主窗口。

我尝试了很多方法:setDefaultCloseOperation(),dispose(),setVisible(),但没有任何方法可以帮助我。

在主窗口中我有这段代码

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    AdaugaComanda ac = new AdaugaComanda();
    ac.setVisible(true);
        }   
public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new FereastraPrincipala().setVisible(true);
      }});}

并在另一个窗口(当我关闭它时关闭主窗口)我有以下代码

public class AdaugaProdus extends javax.swing.JFrame {

public AdaugaProdus() {
    initComponents();
    initComboBoxes();

}


public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            AdaugaProdus ad = new AdaugaProdus();
            ad.setVisible(true);

        }
    });
}

1 个答案:

答案 0 :(得分:3)

一种可能的简单解决方案:使辅助窗口成为对话框,例如JDialog,而不是JFrame。应用程序通常一次只能打开一个JFrame。 JDialog可以像任何JFrame一样保持GUI的复杂性,当它关闭时,它永远不会像JFrame那样关闭JVM(正如你所发现的那样)。根据需要,您还可以选择是否对话模式。

说到这里,请理解虽然新信息可以显示为JFrame所拥有的对话框,但也可以通过CardLayout交换JFrame上的组件来显示它 - 它取决于哪种类型的信息你想表现出来。