解决方案 »

  1.   

    在主面板上监听子面板事件,刷新可以用updateUI方法
      

  2.   

    如果面板有改动比如说调用了panel.removeAll();那么用如下语句可以刷新面板panel.validate();
    panel.repaint();
      

  3.   

    我的那个子面板没什么变化,变化的是那个子面板的背景的图片。如:子面板的背景图片路径为:d:/1.jpg,图片变了的同时我想更新子面板的背景的图片。
            
    我用了updateUI、validate、repaint 子面板都没更新,所以我在想是不是其他的问题......................
    我说下子面板的情况吧,子面板上就只有一个jlable,设置了它的背景图片,因为图片的大小不定,而子面板的大小是规定的,所以把jlable放在了JScrollPanel上面,这样的话就会有下来条,再就有一个jpanel来放置这个JScrollPanel,最后把这个jpanel放到主面板上来.现在我在主面板上面有一个监听是更改图片的,就是更改jlable的背景图片,但我要在更改图片的同时来刷新jlable的背景.
      

  4.   

    你repaint一百次那个JLabel背景东西也不会变的
    你必须调用setIocn或者setBackground然后再刷新才会起作用!
      

  5.   

    public class LegendPanel_new extends JPanel { private JPanel rootpanel;
    public JLabel iocn;

    public JLabel getIocn() {
    return iocn;
    } public void setIocn(JLabel iocn) {
    this.iocn = iocn;
    }

    public LegendPanel_new() {
    initComponents();
    } private void initComponents() {
    rootpanel = new JPanel();
    iocn = new JLabel(new ImageIcon(System.getProperty("user.dir")+"\\images\\LegendImage\\LegendImage.png"));
    rootpanel.add(iocn);
    this.add(rootpanel);
    }//前面是监听刷新图片.
    LegendPanel_new lp = new LegendPanel_new();
    lp.setIocn(lp.iocn);
    求指教,我这样setIocn不行.