これに対する答えが見つかりません。Java のループでアクティブ ペインティングを使用しようとしています。私は新しいものを作成BufferedImage
し、ペイントメソッドでそのグラフィックを取得し、そのグラフィックを通常のImage
ように描画し、さまざまな形状を描画しますfillRect() etc.
次に、 (変数名canvasで)グラフィックを描画します。BufferedImage
JPanel
Graphics gr = buffer.createGraphics();
gr.drawImage(img, 0, 0, 500, 500, null);
for (int i = 0; i<200; i++){
gr.drawOval(i*10,i*20,50,50);
etc.
}
gr.dispose();
canvas.getGraphics().drawImage(buffer, 0, 0, 500, 500, null);
JPanel で描画されたすべての形状が表示されるのはなぜですか Image なしで、最初にすべてが BufferedImage に描画され、その後すぐに別のグラフィックスに描画されると思いました (それはバッファリングについてではありませんか?)。誰かが私にこれを説明してもらえますか? グラフィックスオブジェクトに描画するスレッドは何ですか? この画像描画が実行されている場所 (paintComponent() を呼び出さずにアクティブ レンダリングを使用する場合)