java 图像渲染_java - 将图像渲染到JPanel的向后兼容性问题上-我在做什么错? - 堆栈内存溢出...

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

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

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

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

1.4.2 JRE下仅渲染角

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

背景是在可见的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类的一部分。

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

非常感谢。 :)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值