質問

私はキャンバスで二重バッファリングを使用しようとしています。オンラインでチュートリアルを利用して、次のコードを設定してキャンバスをインスタンス化し、バッファリングを設定しました。レンダリングGraphiocs(ここには示されていない)を含む完全なプロセスをコーディングしましたが、コンパイラはそれを受け入れます。

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

しかし、プログラムは以下のコードのフラグ付き行で爆発します。ランタイムは、「コンポーネントには有効なピアが必要です」という説明で、違法な状態の例外をスローします。

私が知る限り、ソースコードは本質的にいくつかの例で見たようにしているので、ここで何が起こっているのかわからない。どんな助けも大歓迎です。

ありがとう、

ジョン・ドナー

役に立ちましたか?

解決

コンポーネントには有効なピアが必要です」。

基本的に、GUIが表示されないか、目に見えるGUIにコンポーネントを追加していないことを意味します。

フォーラムに関する他の質問は、スイングアプリケーションを扱います。スイングアプリケーションでAWTコンポーネント(CANVAS)を使用しないでください。 jcomponentまたはjpanelでカスタムペインティングを行います。スイングはデフォルトでダブルバッファリングされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top