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我更新了代码