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)

И я просто не понимаю, как я могу это исправить, потому что иногда это работает просто отлично.

Это фактический рабочий результат

Итак, мои вопросы:

  • Кто-нибудь сейчас почему это происходит?
  • Как мне избавиться от этой ошибки?

0 ответов

Другие вопросы по тегам