在主JFrame中,当按一个键时,怎么打开子JFrame?并当打开子JFrame时,主JFrame不显示,
关闭子JFrame时,主JFrame又重新显示,该如何实现?

解决方案 »

  1.   

    package frame.test;import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;import javax.swing.JButton;
    import javax.swing.JFrame;public class FrameTest {
    public static void main(String args[]) {
    final JFrame f1 = new JFrame();
    f1.setSize(400, 500);
    f1.setLocationRelativeTo(null);
    Container c = f1.getContentPane();
    c.setLayout(new BorderLayout());
    JButton b = new JButton("ok");
    c.add(b); final JFrame f2 = new JFrame();
    f2.setSize(300, 500);
    f2.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
    // TODO Auto-generated method stub
    super.windowClosing(e);
    f1.setVisible(true);
    }
    });
    b.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    f1.setVisible(false);
    f2.setVisible(true);
    }
    });
    f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f1.setVisible(true);
    }
    }
      

  2.   

    当打开子JFrame时,把主JFrame的setVisible(false),同时把子JFrame的setVisible(true);
    当关闭开子JFrame时,把子JFrame的setVisible(false),同时把主JFrame的setVisible(true);
    setVisible()是设置那个窗体可见不可见的!
      

  3.   

    setAlwaysOnTop(true);
    使主JFrame窗体弹出子对话框,点击其他区域无效
      

  4.   

    呵呵 3l说的有道理,就可以通过设置setVisible的参数完成,不过觉得你做得这个东西挺奇怪的