gpt4 book ai didi

java - getImage()/drawImage() 使 Java-Applet 停止工作

转载 作者:行者123 更新时间:2023-11-30 08:49:10 25 4
gpt4 key购买 nike

我正在使用 JApplet 制作 2D Java 游戏。对于图形,我显然分别使用 Graphics Graphics2D。我的问题:我想在我的 paintComponent(Graphics g) 方法中显示图像。图片与 HTML5 文件(Applet 在其中实现)和类文件位于同一目录中。没有下面的代码片段,小程序工作正常(除了没有图像,很明显)。但是一旦我将它添加到类中,Applet 就不会启动(在浏览器中!)。它不会显示任何内容,我也没有得到异常。

代码:

Graphics2D gg = (Graphics2D) g;
Image img = getImage(getDocumentBase(), "img.PNG");
gg.drawImage(img, 70, 50, this);
gg.finalize();

请注意,我安装了 Java 版本 8 更新 51,并且我在 Java 控制面板的白名单中有 HTML5 文件的 URL(所以我不会收到安全错误)。我在 Firefox 和 IE 中尝试了这个小程序。

最佳答案

  1. 从不从绘画方法(例如 paintpaintComponent)中读入图像。即使这成功了(不是你的情况),它也会不必要地导致多次重新读取图像并减慢你的程序的感知响应能力——这是你最不想做的事情。
  2. 改为一次性读取图像并将其存储在变量中。
  3. 你的问题一定是你没有在正确的地方寻找图像——用正确的路径。我建议您从 URL 或 InputStream 获取图像作为资源,并使用 ImageIO.read(...) 读取它。您需要找到图像的正确路径,一些东西鉴于您当前的问题,我们很难猜测,但您会希望使用相对于您的类文件位置的路径。
  4. gg.finalize(); 是危险的代码,不应该存在;去掉这条线。

关于java - getImage()/drawImage() 使 Java-Applet 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571525/

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