在一个jframe中,有一个菜单栏,单击一个菜单项后在这个jframe中添加一个组件,再单击其他菜单项后先移除这个组件,再在这个位置上添加另一个组件。用remove(int i)这个方法没成功。

解决方案 »

  1.   

    这样弄  容器名.remove("组件名");
    容器名.repaint();// 或者是 容器名.updateUI();
      

  2.   

    这些我知道,就是有很多菜单项,你不知道前面是单击了哪个菜单项,加了哪个组件,所以在添加另一个组件的时候,用remove(组件名)的话,不知道要移除哪个组件。有没有一种方法可以知道组件的位置,直接移除那个位子的组件?remove(int i)好像不行,不知道是不是我的方法不对。
      

  3.   

    你要移走组件
    最好给这些可能需要remove的组件增加一个全局引用
    add的时候不要
    add(new JPanel());
    这样来加你可以在你的容器类中这样定义:public class myPanel extends JPanel {
    JPanel pnl1 = new JPanel();
    ...
    .../**
    * 增加控件的方法
    */
    public void addPanel() {
    add(pnl1);
    updateUI();
    }/**
    * 移除控件的方法
    */
    public void removePanel() {
    remove(pnl1);
    updateUI();
    }}