请问怎么才能利用一个Button来完成关闭一个窗体,但又不会把全部窗体关闭呢?

解决方案 »

  1.   

    这个我试过了,不行的。
    我在一个Button上加了一个ActionListener但在我打开另一个窗口后,在用this.dispose();它会提示出错。下面是Button的代码:
    jb1=new JButton("连    接");
    jb1.addActionListener(new ActionListener(){      
    public void actionPerformed(ActionEvent arg0) {
             
                                        MyCall2 Myc=new MyCall2();                   
                                        Myc.setVisible(true);                     
                                        this.dispose();
            }
           });
      

  2.   

    jb1.addActionListener(new ActionListener(){     
    public void actionPerformed(ActionEvent arg0) {
             
                                        MyCall2 Myc=new MyCall2();                   
                                        Myc.setVisible(true);                     
                                        this.dispose();
            }
           });你这里的this不是JFrame而是ActionListener,下面给你写个例子:import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class Test { private JPanel pane_1 = null, pane_2 = null;

    private JFrame frame_1 = null, frame_2 = null;

    JButton button_1 = null, button_2 = null; public Test() {
    frame_1 = new JFrame("1号");
    frame_2 = new JFrame("2号");
    pane_1 = new JPanel();
    pane_2 = new JPanel();
    button_1 = new JButton("关闭本1号窗口");
    button_2 = new JButton("关闭本2号窗口");
    pane_1.add(button_1);
    pane_2.add(button_2);
    button_1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent arg0) {
    frame_1.dispose();
    }});
    button_2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    frame_2.dispose();
    }});
    frame_1.getContentPane().add(pane_1);
    frame_2.getContentPane().add(pane_2);
    frame_1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame_1.setSize(530, 460);
    frame_1.setVisible(true);
    frame_2.setSize(530, 460);
    frame_2.setVisible(true);
    } public static void main(String args[]) {
    new Test();
    }}