你能把代码发上来么?!
用repaint()试试,如果 jpanel自己的不行,调用包含她的容器的repaint()!

解决方案 »

  1.   

    //实例化
    DiyListPanel diylistpanel = new DiyListPanel("冰淇淋");//extends JPanel
    public DiyListPanel(String groupname) {
      this.add(JLabel,new FlowLayout(FlowLayout.LEFT));//jlabel上面画东西
    }就是这样子!我再一次
    //实例化
    DiyListPanel diylistpanel = new DiyListPanel("水果");结果画着冰淇淋的jlabel还在jpanel上!
    和解?》
      

  2.   

    两种方法你试试吧
    1、jpanel.repaint()2、应该用jpanel.remove()吧
       然后再用jpanel.add()添加一便可以么
      

  3.   

    一定要用repaint()方法,对jpanel进行重画。没有repaint()你的输出就一直是第一个画的结果。
      

  4.   

    有点没有看懂问题的感觉:
    我想象了一下Panel不会直接显示,你是不是把这个Panel加入了Frame再显示的?
    DiyListPanel diylistpanel = new DiyListPanel("冰淇淋");
    frame.add(diylistpanel);
    diylistpanel = new DiyListPanel("水果");如果是这样画面不会变是正常的呀!
    第一行新建一个对象并把对象的引用赋给diylistpanel变量,
    frame.add的时候加入的是new DiyListPanel("冰淇淋");
    以后再重新对diylistpanel赋值并不影响new DiyListPanel("冰淇淋")生成的对象。
    除非你再调用一次frame.add(diylistpanel);
    执行一下
    jpanel.repaint()
      

  5.   

    DiyListPanel //extend JPanel
    这个类是放在哪里显示的?
    利用上级Component的repaint()
    看看行不行,如果不行就用Component.remove(),然后再用Component.add()应该就OK了吧。
      

  6.   

    兄弟姐眉们!
    还是不行!
    jpanel是放在一个frame中,根据frame中的按钮来new一个实例!然后在jpanel显示jlabel(上面画有图形),在new jpanel(中参数a),则new 上几个jabel并且add进来在new jpanel(中参数b),则什么都不new那么参数b的上面应该什么都没有,但是他妈的的确显示了参数a的东西,并且还可以调用(指按下去可以返回根据a生成的东西)到底怎么办压!validate();
                    this.remove(this);
                    this.updateUI();
                    this.repaint();
    都用上了额!呵呵!汪汪汪!
      

  7.   

    应该还是这里的错误!
    jpanel没有释放的原因
    因为第一次总是好的!
      

  8.   

    这个问题如果java基础好的话不应该出现。你做的方法有问题。
    DiyListPanel diylistpanel = new DiyListPanel("冰淇淋");
    frame.add(diylistpanel);
    diylistpanel = new DiyListPanel("水果");
    这样肯定会出错的。应该是这样
    DiyListPanel diylistpanel = new DiyListPanel("冰淇淋");
    frame.add(diylistpanel);
    diylistpanel.updateLabel("水果");在diylistpanel中用方法实现label的变更
    public DiyListPanel extends JPanel {
      JLabel jLabel = null;
      public DiyListPanel(String groupname) {
        jLabel = new JLabel(groupname);
        this.add(jLabel, new FlowLayout(FlowLayout.LEFT));
      }  public void updateLabel(String groupname) {
        jLabel.setText(groupname);
        this.validate();
      }
    }代码没有试验过,凭空想象的。你自己试验一下了,呵呵
      

  9.   

    这样肯定会出错的。为什么?既然是new了一个对象,
      

  10.   

    new DiyListPanel("冰淇淋");

    diylistpanel.updateLabel("水果");有什么区别?我new DiyListPanel("水果");
    那么根据水果来找东西,别且没有找到!跟你的updatelabel有什么本质上的取别?安望告之!哼!
      

  11.   

    KillAllError(无心) :
    给我一个解释的理由!
      

  12.   

    pqds(一个女农民)真不知道你的那么多专家分怎么来的在new 第二个JPanel时需要把第一个JPanel从父容器里remove掉
    parent.remove(JPanel1)或JPanel1.getParent().remove(JPanel1);
    然后再把JPanel2加进去
      

  13.   

    relive(六道轮回,无想转生):
    无言以对!是我弱智!我是白痴!
    remove 方法一直是放在jpanel的构建器里的,并且是removeall(),因为里面是jlabel!放在创建的时候就好了!原来是做j2ee的,唉!让你小看了!我真不是人!
    羞愧难当中。
      

  14.   

    但是我为什么在jpanel的构建器里removeall(),因为里面是jlabel!  就是不行呢?
      

  15.   

    http://expert.csdn.net/Expert/topic/2079/2079512.xml?temp=.6070063
    再办我卡看这个!行不!
      

  16.   

    pqds(一个女农民)
    偶不是人,偶没说人话,对不起了
    偶自宫谢罪去了relive(六道轮回,无想转生)黯然离去
      

  17.   

    解释清楚原因再走!
    为什么我在jpanel的构建器里删除label就是不行!
    为什么压?神那?为什么?
     
    啊!这你都干的出来,厉害!就是有点疼(我估计),没事的,一刀下去就好了!呵呵!
    记得不要乱扔!http://expert.csdn.net/Expert/topic/2079/2079512.xml?temp=.6070063
    再办我卡看这个!行不!
      

  18.   

    不明白也帮我UP一下!那个我已经回复3times!
    你再添加记录,我就可以继续up了!
    呵呵!