【发布时间】:2010-08-08 20:42:05
【问题描述】:
我有(我认为是)一个用于 JFrame 的简单的 BufferStrategy。它是这样创建的:
// Buffer
container.createBufferStrategy(2);
strategy = container.getBufferStrategy();
但是,我偶尔会收到以下错误(指向前面的 sn-p 的第一行作为违规项目):
java.lang.IllegalStateException:尚未创建缓冲区
这个错误来来去去都是奇特的——有时会被触发,有时不会。我怀疑这意味着这是一个线程问题。有没有人对这里可能发生的事情有任何指示?我有点不知所措,因为我已经在尝试做 Java 说它想让我做的事情!
编辑:完整跟踪:
Exception in thread "main" java.lang.IllegalStateException: Buffers have not been created
at sun.awt.windows.WComponentPeer.getBackBuffer(WComponentPeer.java:877)
at java.awt.Component$FlipBufferStrategy.getBackBuffer(Component.java:3815)
at java.awt.Component$FlipBufferStrategy.updateInternalBuffers(Component.java:3800)
at java.awt.Component$FlipBufferStrategy.createBuffers(Component.java:3791)
at java.awt.Component$FlipBufferStrategy.<init>(Component.java:3730)
at java.awt.Component$FlipSubRegionBufferStrategy.<init>(Component.java:4253)
at java.awt.Component.createBufferStrategy(Component.java:3612)
at java.awt.Window.createBufferStrategy(Window.java:3015)
at java.awt.Component.createBufferStrategy(Component.java:3536)
at java.awt.Window.createBufferStrategy(Window.java:2990)
【问题讨论】:
-
请在您的问题中添加完整的堆栈跟踪 - 它应该有助于了解 哪个 方法正在抛出 ISE。我查看了 jre 源代码 (1.7),但找不到该异常的潜在来源。
-
这真的是完整的堆栈跟踪吗?我们正在寻找您从 EDT 致电的证据。继续并显示完整的堆栈跟踪。
-
@Kevin Day,
Exception in thread "main"暗示这不是来自美国东部时间。 -
@finw - 同意,这就是为什么我想查看完整的堆栈跟踪,所以我们可以告诉他它是从哪里调用的。我真正的希望是,所有这些对堆栈跟踪的请求将为 OP 提供一些关于如何解决此类问题的想法。
-
我很抱歉 - 我在帖子中添加的内容不是完整的堆栈跟踪吗?这就是我在 IDE 的控制台窗口中得到的。我是否必须专门编写一个调用来将堆栈跟踪转储到某处?