Hi,
bräuchte mal wieder Hilfe... ich will ne einfache BufferStrategy verwenden, scheitere jedoch aufgrund eines mir unbekannten Fehlers. Der Code ist echt klein, ich frag mich was schief geht?
Exception in thread "main" java.lang.IllegalStateException: Component must have a valid peer
at java.awt.Component$FlipBufferStrategy.createBuffers(Component.java:3362)
at java.awt.Component$FlipBufferStrategy.<init>(Component.java:3337)
at java.awt.Component.createBufferStrategy(Component.java:3246)
at java.awt.Canvas.createBufferStrategy(Canvas.java:166)
at java.awt.Component.createBufferStrategy(Component.java:3178)
at java.awt.Canvas.createBufferStrategy(Canvas.java:141)
at GameCanvas.<init>(GameCanvas.java:23)
at LevelControl.<init>(LevelControl.java:20)
at Ships3.main(Ships3.java:8)
bräuchte mal wieder Hilfe... ich will ne einfache BufferStrategy verwenden, scheitere jedoch aufgrund eines mir unbekannten Fehlers. Der Code ist echt klein, ich frag mich was schief geht?
Exception in thread "main" java.lang.IllegalStateException: Component must have a valid peer
at java.awt.Component$FlipBufferStrategy.createBuffers(Component.java:3362)
at java.awt.Component$FlipBufferStrategy.<init>(Component.java:3337)
at java.awt.Component.createBufferStrategy(Component.java:3246)
at java.awt.Canvas.createBufferStrategy(Canvas.java:166)
at java.awt.Component.createBufferStrategy(Component.java:3178)
at java.awt.Canvas.createBufferStrategy(Canvas.java:141)
at GameCanvas.<init>(GameCanvas.java:23)
at LevelControl.<init>(LevelControl.java:20)
at Ships3.main(Ships3.java:8)
Code:
public class GameCanvas extends Canvas
{
private BufferStrategy strategy;
private Graphics2D g;
/**creates the canvas and the used BufferStrategy
GameCanvas()
{
// size of canvas
this.setBounds(0,0,800,600);
this.setBackground(Color.BLACK);
// active rendering
this.setIgnoreRepaint(true);
// BufferStrategy
createBufferStrategy(2);
strategy = getBufferStrategy();
}
/**returns the (by the canvas accelerated) graphics context to which all other classes should draw to
public Graphics2D getGraphicsContext()
{
return g = (Graphics2D) strategy.getDrawGraphics();
}
/**draws the accelerated canvas, note: this method should be called after all the other classes finished drawing
public void draw()
{
// finally, we've completed drawing so clear up the graphics
// and flip the buffer over
g.dispose();
strategy.show();
}
}