Component must have a valid peer

0

staram sie uzyc techniki double buffering

public class Panel_Glowny extends Canvas
{
public Panel_Glowny()
{

....
createBufferStrategy(2);  ****
buforowanie = getBufferStrategy();
requestFocus();

....    

}
....
public BufferStrategy buforowanie;
}

otrzymuje blad w miejscu oznaczonym gwiazdkami

Exception in thread "main" 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.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)
at java.awt.Component.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)

czego moze to byc przyczyna ?

0

a sprobuj po prostu:

public class Panel_Glowny extends JPanel
{
  public Panel_Glowny()
{
   super(true);
}

}

pozdrawiam
johny

0

nie za bardzo rozumiem w czym mialoby to pomoc :)

0
konieczny napisał(a)

nie za bardzo rozumiem w czym mialoby to pomoc :)

w tym, ze taki panel jest podwojnie buforowany. Ale jesli z jakichs powodow potrzebujesz dziedziczyc po canvas, no to nie pomoze :)

pozdrawiam
johny

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0