BufferStrategy非法状态异常

时间:2012-04-14 23:26:27

标签: java awt illegalstateexception

经过几个小时的尝试,我感到难过。我对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文件启动时工作正常。

1 个答案:

答案 0 :(得分:3)

这可能与您在致电createBufferStrategy()时已经不可见的组件有关(已经有一段时间了)。请稍后再试一次。

您的应用程序继续运行的事实可能意味着该组件默认为非缓冲策略。