Java JPanel中的图像不会立即出现

Java JPanel中的图像不会立即出现,java,image,swing,paintcomponent,Java,Image,Swing,Paintcomponent,我正在使用getImage读取文件并保存它们,然后将这些图像设置为JPanel的背景。但是,首次加载小程序时,图像不可见。仅当我调整大小或上下滚动时,图像才会显示。有什么问题 @Override public void init(){ setSize(800, 600); setLayout(new FlowLayout()); setup(); box1.setText(texts[0]); box2.setText(texts[1]);

我正在使用
getImage
读取文件并保存它们,然后将这些图像设置为JPanel的背景。但是,首次加载小程序时,图像不可见。仅当我调整大小或上下滚动时,图像才会显示。有什么问题

@Override
public void init(){

    setSize(800, 600);
    setLayout(new FlowLayout());

    setup();

    box1.setText(texts[0]);
    box2.setText(texts[1]);
    box3.setText(texts[2]);
    box4.setText(texts[3]);


    add(box1);
    add(box2);
    add(box3);
    add(box4);

    add(testPanel);
    add(localPanel);
    add(background2);
}

public void setup(){


    box1 = new JTextArea();
    box2 = new JTextArea();
    box3 = new JTextArea();
    box4 = new JTextArea();


    box1.setText(texts[0]);
    box2.setText(texts[1]);
    box3.setText(texts[2]);
    box4.setText(texts[3]);

            //*********** this loads immediately **********//
    Image back2 = getImage(getDocumentBase(), "blank_blue.png");
    background2 = new JLabel(new ImageIcon(back2));

    panelBack = getImage(getDocumentBase(), "CardBar.png");

    localPanel = new JPanel(){
        @Override
        public void paintComponent(Graphics g){
            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D) g;
            g2d.drawImage(panelBack, 0, 0, null);
        }
    };

    localPanel.setPreferredSize(new Dimension(100, 400));

}

最初绘制组件时,可能无法读取图像。尝试:

//g2d.drawImage(panelBack, 0, 0, null);
g2d.drawImage(panelBack, 0, 0, this);

您发布的代码没有显示问题的根源。我怀疑您是在GUI呈现后向其添加组件,并没有告诉GUI重新验证和重新绘制容器,但目前我只能猜测。您需要发布更多代码。@HovercraftFullOfEels我更新了代码