# IllegalStateException bei createBufferStrategy



## HiImSkulte (28. Jan 2017)

*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

```
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!


----------



## SF2311 (29. Jan 2017)

Schau mal hier:http://stackoverflow.com/questions/10866269/illegal-state-exception-when-creating-new-bufferstrategy
http://stackoverflow.com/questions/10866269/illegal-state-exception-when-creating-new-bufferstrategy
oder hier:http://www.java-forum.org/thema/bufferstragety-fehler-component-must-have-a-valid-peer.44131/
http://www.java-forum.org/thema/bufferstragety-fehler-component-must-have-a-valid-peer.44131/
Das könnte helfen

PS:
Das hab ich nach 2 sekunden googeln gefunden. Nächstes mal schau erst mal selbst nach ner Lösung, denn in 90% aller Fälle hatte das Problem schonmal jemand und der hat dann ne Lösung.


----------



## HiImSkulte (29. Jan 2017)

Das habe ich bereits alles gefunden allerdings hat mir das nicht weitergeholfen ^^


----------



## SF2311 (29. Jan 2017)

in einer meiner Rendermethoden sieht das so aus:

```
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:

```
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);
```


----------

