Swing での描画がどのように機能するかを理解しようとしています。その目的のために、私はOracleのチュートリアルを読んでいます: http://docs.oracle.com/javase/tutorial/uiswing/painting/step3.html
私の質問は単純なものです。同じ関数 (再描画) への 2 つの呼び出しの動作が異なるのはなぜですか? UI デリゲートが以前にペイントした四角形に背景をペイントするのに、新しい領域に新しい四角形をペイントするのはなぜですか? そのための paintComponent() に関する特別な理由はありません。
状況を理解しようとしてhttp://docs.oracle.com/javase/tutorial/uiswing/painting/closer.htmlも読みました。コンポーネントの opaque プロパティと何らかの関係があるようです。このプロパティは、新しい四角形を作成した後に true になるように変更されますか (したがって、前述のように、ui.update() はそれを背景色に設定します)。paintComponent() がそこに新しい四角形を描画しないのはなぜですか?