@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
super.paintComponent(g2);
g2.fillRect(20, 20, 200, 200);
g2.drawImage(map, 0, 0, 1004, 687, null);
}
这是我的JPanel中paintComponent的代码。
当应用程序启动时,我可以看到矩形(仅在那里,因为我想检查是否正在调用paintComponent)。但是地图不会在我通过调整窗口大小或按下强制重绘()的按钮强制重新绘制之前绘制。
我尝试在几个地方调用validate(),因为有些答案提示,但它没有用。
答案 0 :(得分:5)
g2.drawImage(map, 0, 0, 1004, 687, null);
尝试使用:
g2.drawImage(map, 0, 0, 1004, 687, this);
在调用paintComponent()方法时,可能没有完全读取图像。 I / O完成后,“this”将导致图像被绘制。也就是说,面板将被通知I / O完成,面板将重新绘制。