我的paintComponent()
中的JPanel
方法在加载BufferedImages之后不起作用。更新方法每20毫秒(swing.timer
)正常运行,但是窗口保持白色,没有任何形状或颜色(在我包含图像之前就已经存在)。如果我只是对BufferedImage
testImage
(请参见代码)发表评论,则paintComponent
方法将再次运行并显示我的游戏屏幕。
我多次编写ImageLoader
类,并尝试了不同的路径。它们中的大多数导致了错误消息,但是现在路径正常工作并且可以加载BufferedImages。但是现在,窗户仍然只是白色。
paintComponent()
未运行。 Update()
正在运行,形状改变了位置。但是你什么都看不到。 我尝试在System.out.println()
中使用paintComponent()
,但控制台也保持空白。完全没有输出。
我不知道代码的哪一部分导致了错误,但是在这里您可以说ImageLoader
类中的paintComponent()
和JPanel
(至少有意义代码)
ImageLoader:
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 */
}
如果我尝试启动程序,则只有一个白色窗口。控制台中没有错误消息。如果我尝试输出BufferedImage,则有一个输出。它不为空。但是,如果我不加载图像而写
private BufferedImage testImage = null;
游戏开始,paintComponent()
正在完成任务。
但是为什么我的paintComponent出现BufferedImage != null
问题?