gpt4 book ai didi

java - 将图像渲染到JPanel的向后兼容性问题上-我在做什么错?

转载 作者:太空宇宙 更新时间:2023-11-04 08:25:21 27 4
gpt4 key购买 nike

我一直在使用最新版本的Java Java 6在Eclipse中为学校作业进行战舰游戏,直到我意识到我需要为1.4.2 JRE提供兼容性。

我一直小心不要使用任何在1.4.2编译器中不可用的功能和库类,并且我的代码可以很好地编译。问题在于游戏的背景图片无法正确渲染-仅渲染了左上角的一个小角。

供参考,以下是显示我的问题的屏幕截图:

Java 6运行时环境下的游戏渲染正确

Image Link (I can't embed them yet.)

1.4.2 JRE下仅渲染角

Image Link (I can't embed them yet.)

而且,当然,两个屏幕截图中的代码没有区别,只是运行时环境不同。

背景绘制在可见的JPanel上,并使用setContentPane()添加到JFrame。将图像加载到程序中没有错误。

我做了很多测试,发现我的输入处理程序只响应其中有图像的那个小角落的输入,这意味着我的JPanel不能填满整个屏幕,但是我已经仔细检查了一下它的大小,并且与JFrame的大小(800 x 600)相匹配。

这是我的渲染代码:

public void render() {                               

Graphics2D g = (Graphics2D) getGraphics();
Graphics2D gb = (Graphics2D) buffer.getGraphics();

gb.drawImage(background, 0, 0, null);

gb.setColor(new Color(45, 45, 45));
gb.setFont(new Font("Arial", Font.BOLD, 18));
gb.drawString("Outwit the computer. Are you up for the challenge?", 175, 185);

cont.draw(gb, contState);

//Draw buffer to screen
g.drawImage(buffer, 0, 0, null);

}


重复调用此方法以渲染游戏的框架。它是JPanel类的一部分。

我几乎尝试了所有事情,这是我的不得已的方法。这可能是较旧的运行时环境的错误吗?任何见识将不胜感激!

非常感谢。 :)

最佳答案

看一下这篇文章:http://java.sun.com/products/jfc/tsc/articles/painting/#mgr

我认为您需要查看脏区并告诉程序在哪里重绘,而不是假设它知道正在发生什么。

关于java - 将图像渲染到JPanel的向后兼容性问题上-我在做什么错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663901/

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