this.remove(imageBack);

imageBack = new ImageBackGround(backIconName, getW(), getH());

this.add(imageBack,new GridBagConstraints());

this.repaint();
this是个JPanel,背景是个Jpanel就是ImageBackGround类这里有paintComponent方法
但是这段代码触发时背景变成没有图片,在刷新一下就好了,请大家帮帮忙

解决方案 »

  1.   

    不明白你具体类是怎么关联的。。
    我如果要实现在JPanel 上画背景 我会这样做
    class WithBackGroundPanel extends JPanel
    {
       Image backGround;
       ... ...   @Override
       public void paint(Graphics g)
       {
           super.paint(g);
            
           g.drawImage(backGround, 0, 0, this);   }
     ... ...}   
      

  2.   

    谢谢我也在改成这种方法,如果是调用repaint()方法应该重画,我现在要实现背景更换所以在panel里又放了一个panel做背景,可是reapin()不好用,不知道为什么,最小化后就可以了,