Frage

Ich bin versucht, doppelte Pufferung mit einer Leinwand zu verwenden, habe etwas, was ich noch nie zuvor getan. Ich nutzte die Tutorials online, und den folgenden Code einrichten, um eine Leinwand zu instanziiert und die Pufferung für sie eingerichtet. Ich codiert den gesamten Prozess einschließlich der Rendering graphiocs (hier nicht dargestellt), und der Compiler akzeptiert es.

 volCanvas = new VolCanvas();
 volCanvas.setBackground(Color.black);
 volCanvas.setBounds(10, 380, 1180, 125);
 add(volCanvas);
 volCanvas.createBufferStrategy(2);            (Program blows up here)
 offScreen = volCanvas.getBufferStrategy();
 ofsg = (Graphics2D) offScreen.getDrawGraphics();

Aber das Programm bläst unten an der markierten Linie in dem Code auf. Die Laufzeit wirft eine illegale Zustand Ausnahme, mit der Erklärung „Komponente muss eine gültige Peer hat“.

So weit ich das beurteilen kann, ist der Quellcode im Wesentlichen, wie ich es in mehreren Beispielen gesehen haben, so dass ich keine Ahnung, was hier vor sich geht. Jede Hilfe wäre sehr geschätzt.

Danke,

John Doner

War es hilfreich?

Lösung

  

Die Komponente muss eine gültige Peer hat“.

Es im Grunde bedeutet, dass Ihr GUI nicht sichtbar ist oder Sie Ihre Komponente zu einer sichtbaren GUI hinzugefügt.

Weitere Fragen aus dem Forum befassen sich mit Swing-Anwendungen. Sie sollten keine AWT-Komponente (Canvas) in einer Swing-Anwendung verwenden. Sie malen Brauch auf einem JComponent oder JPanel. Swing ist doppelt gepuffert standardmäßig aktiviert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top