JFrame中Remove是怎么使用的啊?  我这个怎么remove不了? 
请高手指点一下,最好说说原因。package com.edu.test;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import java.util.Vector;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;public class TestRemove extends JFrame{
private Vector vec1 = new Vector();
private Vector vec2 = new Vector();
private JTable jt= null;
private JPanel jp_main = null;
private JPanel jp_center = null;
private JPanel jp_south = null;
private JButton jb_ok = null;
private JButton jb_quit = null;
private JLabel jl_pic = null;
private JScrollPane js = null; 
public TestRemove(){
super("测试remove窗体");
vec2.add("列一");
vec2.add("列二");
vec2.add("列三");
vec2.add("列四");
vec2.add("列五");

Vector vec3 = new Vector();
for(int i = 0;i < 5; i++){
vec3.add(i+"");
}
for(int i = 0;i < 5; i++){
vec1.add(vec3);
}
}

public void LanuchFrame(){
jp_main = new JPanel(new BorderLayout());
jp_center = new JPanel();
jp_south = new JPanel();
jt = new JTable(vec1,vec2);
js = new JScrollPane(jt);
jp_center.add(js);
jb_ok = new JButton("显示表格");
jb_quit = new JButton("显示图片");
jp_south.add(jb_ok);
jp_south.add(jb_quit);

/**显示表格*/
jb_ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
remove(jt);
remove(js);
remove(jp_center);
jt = new JTable(vec1,vec2);
js = new JScrollPane(jt);
jp_center.add(js);
jp_main.add(jp_center,BorderLayout.CENTER);
}
});

/**显示图片*/
jb_quit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
remove(jt);
remove(js);
remove(jp_center);
URL url = TestRemove.class.getResource("chart.jpg");
Icon icon = new ImageIcon(url);
jl_pic = new JLabel(icon);
js = new JScrollPane(jl_pic);
jp_center.add(js);
jp_main.add(jp_center,BorderLayout.CENTER);
}
});

jp_main.add(jp_center,BorderLayout.CENTER);
jp_main.add(jp_south,BorderLayout.SOUTH);
this.setContentPane(jp_main);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(400,400);
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
new TestRemove().LanuchFrame();
}
}

解决方案 »

  1.   

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.net.URL;
    import java.util.Vector;
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;public class TestRemove extends JFrame {
        private Vector vec1 = new Vector();
        private Vector vec2 = new Vector();
        private JTable jt= null;
        private JPanel jp_main = null;
        private JPanel jp_center = null;
        private JPanel jp_south = null;
        private JButton jb_ok = null;
        private JButton jb_quit = null;
        private JLabel jl_pic = null;
        private JScrollPane js = null; 
        public TestRemove(){
            super("测试remove窗体");
            vec2.add("列一");
            vec2.add("列二");
            vec2.add("列三");
            vec2.add("列四");
            vec2.add("列五");
            
            Vector vec3 = new Vector();
            for(int i = 0;i < 5; i++){
                vec3.add(i+"");
            }
            for(int i = 0;i < 5; i++){
                vec1.add(vec3);
            }
        }
        
        public void lanuchFrame(){
            jp_main = (JPanel)getContentPane();
            jp_center = new JPanel();
            jp_south = new JPanel();
            jt = new JTable(vec1,vec2);
            jb_ok = new JButton("显示表格");
            jb_quit = new JButton("显示图片");
            jp_south.add(jb_ok);
            jp_south.add(jb_quit);        /**显示表格*/
            jb_ok.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
    jp_center.removeAll();
                    remove(jp_center);

    js = new JScrollPane(jt);
                    jp_center.add(js);
                    jp_main.add(jp_center,BorderLayout.CENTER);
    jp_main.revalidate();
                }
            });
            
            /**显示图片*/
            jb_quit.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
    jp_center.removeAll();
                    remove(jp_center);

                    URL url = TestRemove.class.getResource("chart.jpg");
                    Icon icon = new ImageIcon(url);
                    jl_pic = new JLabel(icon);
                    js = new JScrollPane(jl_pic);
                    jp_center.add(js);
                    jp_main.add(jp_center,BorderLayout.CENTER);
    jp_main.revalidate();
                }
            });
            
            jp_main.add(jp_center,BorderLayout.CENTER);
            jp_main.add(jp_south,BorderLayout.SOUTH);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setPreferredSize(new Dimension(400,300));
            this.pack();
    this.setLocation(400,400);
            this.setVisible(true);
        }
        public static void main(String[] args) {
    java.awt.EventQueue.invokeLater(new Runnable(){
    public void run(){
        new TestRemove().lanuchFrame();
    }
        });
        }
    }