还有,我每次关掉子类窗口时,父类窗口也会被关掉,怎么解决?

解决方案 »

  1.   

    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;public class WTest extends JFrame{ public WTest(){
    super("Demo");
    JButton btn1 = new JButton("Open a JFrame");
    btn1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    JFrame another = new JFrame("Another");
    //another.setDefaultCloseOperation(EXIT_ON_CLOSE);
    another.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    another.setBounds(400,400,300,200);
    another.setVisible(true);
    }
    });
    JButton btn2 = new JButton("Open a JFrame");
    btn2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    JFrame another = new JFrame("Another");
    another.setDefaultCloseOperation(EXIT_ON_CLOSE);
    //another.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    another.setBounds(400,400,300,200);
    another.setVisible(true);
    }
    });
    getContentPane().add(btn1,BorderLayout.NORTH);
    getContentPane().add(btn2,BorderLayout.SOUTH);
    setBounds(100,100,300,500);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
    }

    public static void main(final String[] args){
    new WTest();
    }
    }
      

  2.   

    设置一下退出方式!设置用户在此窗体上发起 "close" 时默认执行的操作。必须指定以下选项之一: DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作。 
    HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。 
    DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。 
    EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。 
    默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为 "defaultCloseOperation"。 
      

  3.   

    another.setDefaultCloseOperation(EXIT_ON_CLOSE);
    功能类似于System.exit();所以肯定是全部都关闭掉啊
      

  4.   

    把UploadPublic类中的setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    改成setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);就可以了!