Domanda

Sto tentando di usare il double buffering con una tela, qualcosa che non ho mai fatto prima. Ho approfittato dei tutorial on-line, e impostare il seguente codice per creare un'istanza di una tela e impostare il buffer per esso. Ho codificato il processo completo che include i graphiocs di rendering (non mostrato qui), e il compilatore accetta.

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

Ma il programma fa saltare in aria alla linea contrassegnata nel seguente codice. Il runtime genera un'eccezione Stato illegale, con la spiegazione "componente deve avere un pari valida".

Per quanto posso dire, il codice sorgente è essenzialmente come ho visto in diversi esempi, quindi non ho idea di cosa sta succedendo qui. Qualsiasi aiuto sarebbe molto apprezzato.

Grazie,

John Doner

È stato utile?

Soluzione

  

Componente deve avere un pari valida".

E 'in pratica significa la vostra interfaccia grafica non è visibile o non hanno aggiunto il componente di una GUI visibile.

I tuoi altri domande sulla trattativa forum con applicazioni Swing. Si consiglia di non utilizzare un componente AWT (Canvas) in un'applicazione Swing. Non personalizzato pittura su un JComponent o JPanel. Swing è doppia tamponato per impostazione predefinita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top