我正在使用JApplet制作2D Java游戏。对于图形我显然分别使用Graphics
Graphics2D
。我的问题:我想在我的paintComponent(Graphics g)
方法中显示图像。该图片与HTML5-File(实现Applet)和类文件位于同一目录中。如果没有以下代码片段,applet工作正常(显然除了没有图像)。但是一旦我将它添加到课堂中,Applet就无法启动(在浏览器中!)。它不会显示任何内容,我也不会例外。
代码:
Graphics2D gg = (Graphics2D) g;
Image img = getImage(getDocumentBase(), "img.PNG");
gg.drawImage(img, 70, 50, this);
gg.finalize();
请注意我安装了Java Version 8 Update 51,并且我在Java控制面板中的白名单上有HTML5-File的URL(所以我没有得到安全错误)。我在Firefox和IE中试过了applet。
答案 0 :(得分:2)
paint
或paintComponent
等绘画方法中读取图片。即使这是成功的(它不在你的情况下),它将不必要地导致多次重读图像并减慢你的程序的感知响应速度 - 你想要的最后一件事做。ImageIO.read(...)
读取它。您需要找到图像的正确路径,鉴于您当前的问题,我们难以猜测,但是您需要使用相对于类文件位置的路径。gg.finalize();
是危险的代码,不应该存在;摆脱这条线。