When I am trying to figure out how to use bufferstrategies, and overall just improving how I write my code and cleaning things up. When I run the following code, I get an er
In my experience with this error and with the code you writing you missing a frame function.
Add where your frames are (ex: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
) and add the function frame.add(game);
In this example, mine is Display game = new Display();
but depending on what your variable for the new display is, it might vary.
I had exactly the same exception, but i found out that it was because my JFrame visibility was accidentally set to false.
so puting in setVisible(true); fixed it.
Taking a look at the API, this exception is thrown if the component is not displayable. In this case, that's when Canvas.peer
is null
. Taking a look at the peer
field reveals that
The peer is set when the
Component
is added to a container that also is a peer
Since you are starting the update thread from your component's constructor, render
could be called before your component is ever added to another container which would mean the peer
is null
, and then an IllegalStateException
would be thrown.