使用ImageLoader包含BuffereImage后,java paintComponent()无法工作
我的JPanel
中的paintComponent()
方法在加载BuffereImage后不起作用。更新方法每20ms(swing.timer
)正常运行一次,但窗口保持白色,没有任何形状或颜色(在我包含图像之前就存在)。如果我只是对BufferedImage
{paintComponent
方法将再次运行并显示我的游戏屏幕
我多次编写了ImageLoader
类,并尝试了不同的路径。大多数错误都会导致错误消息,但现在路径工作正常,可以加载BuffereImage。但现在窗户仍然是白色的
paintComponent()
未运行Update()
正在运行,形状会更改其位置。但是你什么也看不见我尝试在paintComponent()
中使用System.out.println()
,但是控制台仍然是空的。根本没有输出
我不知道我的代码的哪一部分导致了错误,但是在这里你可以说ImageLoader
以及JPanel
类中的paintComponent()
(至少是有意义的代码)
图像加载器:
public class ImageLoader {
public static BufferedImage load(String path) {
try {
return ImageIO.read(ImageLoader.class.getResource(path));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
在我的JPanel课程中:
private BufferedImage testImage = ImageLoader.load("/res/playerufo.png");
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
/* Draw here --> I am not drawing any images yet. Just some colored rectangles */
}
如果我尝试启动程序,只有一个白色窗口。控制台中没有错误消息。如果我尝试输出BuffereImage,则会有一个输出。它不是空的。但如果我不加载图像,而是写入
private BufferedImage testImage = null;
游戏开始了paintComponent()
正在做它的工作。
但是为什么我的paintComponent在BufferedImage != null
上“有问题”
共 (0) 个答案