2
的努力工作,这一点我难倒了几个小时后。我对Java有点新,并且可以使用一些帮助。BufferStrategy使用非法状态异常
堆栈跟踪:
java.lang.IllegalStateException: Component must have a valid peer
at java.awt.Component$FlipBufferStrategy.createBuffers(Unknown Source)
at java.awt.Component$FlipBufferStrategy.<init>(Unknown Source)
at java.awt.Component$FlipSubRegionBufferStrategy.<init>(Unknown Source)
at java.awt.Component.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)
at java.awt.Component.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)
at com.mime.crystalnova.Display.render(Display.java:148)
at com.mime.crystalnova.Display.run(Display.java:112)
at java.lang.Thread.run(Unknown Source)
的错误似乎与这行代码在这里:
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(3);
return;
}
奇怪的是,它给我这个错误,而调试,然后继续完美无瑕地运行。它通过可运行jar文件启动时也可以正常工作。
难道你不爱[heisenbugs(http://en.wikipedia.org/wiki/Heisenbug)? – amit 2012-04-14 23:30:45
我想通了。我只是多次调用createBufferStrategy()。 :d – TheElephantSeal 2012-04-14 23:34:00
这可能是未来的读者有帮助。一旦您完成了解决这一问题 - 你应该张贴什么问题究竟是你如何设法解决这个问题。 [作为一个答案 - 没有什么错在回答自己的问题,只要它适合与口感好] – amit 2012-04-14 23:35:48