经过几个小时的尝试,我感到难过。我对Java有点新,可以使用一些帮助。
堆栈跟踪:
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;
}
奇怪的是它在调试时给了我这个错误,然后继续完美运行。它也可以通过runnable jar文件启动时工作正常。
答案 0 :(得分:3)
这可能与您在致电createBufferStrategy()
时已经不可见的组件有关(已经有一段时间了)。请稍后再试一次。
您的应用程序继续运行的事实可能意味着该组件默认为非缓冲策略。