IllegalStateException bei createBufferStrategy

HiImSkulte

Mitglied
Hallo,
ich bin gerade dabei ein kleines Spiel zu programmieren und wenn ich in meiner render-Methode nun die BufferStrategy erstellen will kriege ich einen Fehler: IllegalStateException: Component must have valid peer
Java:
public void render() {
        BufferStrategy bs = getBufferStrategy();
        if (bs == null) {
            createBufferStrategy(3);
            return;
        }
      
        screen.clearScreen();
      
        Graphics g = bs.getDrawGraphics();

        g.drawImage(image, 0, 0, WIDTH, HEIGHT, null);
      
        g.dispose();
        bs.show();
    }

Die Fehlermeldung:
Exception in thread "SquareFight" 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 data.Game.render(Game.java:72)
at data.Game.run(Game.java:64)
at java.lang.Thread.run(Unknown Source)


Danke für jede Hilfe! :)
 
Zuletzt bearbeitet:

SF2311

Mitglied
Zuletzt bearbeitet:

SF2311

Mitglied
in einer meiner Rendermethoden sieht das so aus:
Java:
bs = canvas.getBufferStrategy();
        if(bs == null){
         canvas.createBufferStrategy(3);
         bs = canvas.getBufferStrategy();
        }
        g = canvas.getBufferStrategy().getDrawGraphics();
     
        g.clearRect(0, 0, width, width);

und das canvas so:
Java:
canvas = new Canvas();
        canvas.setPreferredSize(new Dimension(width,heigth));
        canvas.setMaximumSize(new Dimension(width,heigth));
        canvas.setMinimumSize(new Dimension(width,heigth));
        canvas.setFocusable(false);
     
        frame.add(canvas);
 

Neue Themen


Oben