Java - Backbuffer не может быть создан
Итак, у меня есть этот кусок кода
//Private Vars
private static final Frame frame = new Frame("UX test");
//Private Classes
private static class WListener implements WindowListener{...}
private static BufferStrategy strat;
//Public Vars
private static class KListener implements KeyListener{...}
static Texture texture = new Texture(0, 0, "HELP.png");
public static void main(String[] args) {
frame.addWindowListener(new WListener());
frame.addKeyListener(new KListener());
frame.setVisible(true);
frame.setBounds(0, 0, 500, 500);
frame.createBufferStrategy(2);
strat = frame.getBufferStrategy();
while(frame.isVisible()) {
Graphics g = strat.getDrawGraphics();
g.clearRect(0, 0, frame.getWidth(), frame.getHeight());
g.drawImage(texture.GetImage(), texture.x, texture.y, frame);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
g.dispose();
strat.show();
}
public static class Texture{...}
}
Текстура это просто объект, который содержит изображение, которое я получил через imageIO
К сожалению, большую часть времени, когда я запускаю приложение, консоль дает мне следующее
Exception in thread "main" java.lang.IllegalStateException: Buffers have not been created
at java.desktop/sun.awt.windows.WComponentPeer.getBackBuffer(WComponentPeer.java:1018)
at java.desktop/java.awt.Component$FlipBufferStrategy.getBackBuffer(Component.java:4123)
at java.desktop/java.awt.Component$FlipBufferStrategy.updateInternalBuffers(Component.java:4108)
at java.desktop/java.awt.Component$FlipBufferStrategy.createBuffers(Component.java:4099)
at java.desktop/java.awt.Component$FlipBufferStrategy.<init>(Component.java:4038)
at java.desktop/java.awt.Component$FlipSubRegionBufferStrategy.<init>(Component.java:4566)
at java.desktop/java.awt.Component.createBufferStrategy(Component.java:3901)
at java.desktop/java.awt.Window.createBufferStrategy(Window.java:3392)
at java.desktop/java.awt.Component.createBufferStrategy(Component.java:3825)
at java.desktop/java.awt.Window.createBufferStrategy(Window.java:3367)
at Start.main(Start.java:118)
И я просто не понимаю, как я могу это исправить, потому что иногда это работает просто отлично.
Это фактический рабочий результат
Итак, мои вопросы:
- Кто-нибудь сейчас почему это происходит?
- Как мне избавиться от этой ошибки?