Java Buffer戦略:コンパイラはそれが好きではありません
-
29-09-2019 - |
質問
私はキャンバスで二重バッファリングを使用しようとしています。オンラインでチュートリアルを利用して、次のコードを設定してキャンバスをインスタンス化し、バッファリングを設定しました。レンダリング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でカスタムペインティングを行います。スイングはデフォルトでダブルバッファリングされます。
所属していません StackOverflow