gpt4 book ai didi

Java swing 在调用 repaint() 之前不会显示 g.drawImage()

转载 作者:行者123 更新时间:2023-12-01 16:57:33 24 4
gpt4 key购买 nike

@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是否被调用)。但是直到我通过调整窗口大小或按下强制 repaint() 的按钮来强制重新绘制之前, map 才会绘制。

我尝试在几个地方调用 validate(),因为一些答案表明了这一点,但它不起作用。

最佳答案

g2.drawImage(map, 0, 0, 1004, 687, null);

尝试使用:

g2.drawImage(map, 0, 0, 1004, 687, this);

也许在调用paintComponent()方法时图像没有被完全读取。当 I/O 完成时,“this”将导致图像被绘制。也就是说,面板将收到 I/O 完成的通知,并且面板将重新绘制自身。

关于Java swing 在调用 repaint() 之前不会显示 g.drawImage(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com