これについてチュートリアルを試しましたが、まだよくわかりません。基本的に私の質問は、どの方法が優れているのか、そしてその理由は何ですか? またはを使用する必要がありますpaint
かpaintComponent
?
答えをシンプルに保つようにしてください、ありがとう。
これについてチュートリアルを試しましたが、まだよくわかりません。基本的に私の質問は、どの方法が優れているのか、そしてその理由は何ですか? またはを使用する必要がありますpaint
かpaintComponent
?
答えをシンプルに保つようにしてください、ありがとう。
paint()
メソッドのドキュメントからの引用
このメソッドは、ペイントの作業を、3 つの保護されたメソッド (paintComponent、paintBorder、および paintChildren) に実際に委譲します。... UI (ルック アンド フィール) デリゲートの paint メソッドを特殊化するだけのサブクラスは、paintComponent をオーバーライドする必要があります。
paint()
このメソッドは、境界線と子を含むコンポーネントを実際に描画しているように見えます。境界線と子を除いてコンポーネントの外観のみをカスタマイズする場合は、paintComponent()
.
http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#paint(java.awt.Graphics)
一般的に言えば、Swing でペイントする場合はオーバーライドすることをお勧めしますpaintComponent
。
理由はいくつかあります。1 つはpaintComponent
最下層にペイントされているため、ペイント プロセス中にレンダリングされたコンポーネントを誤って消去することはありません。これは、ここに投稿する人によく起こります。
をオーバーライドする必要がある場合はごくわずかですが、最初paint
にそれを機能させることを常にお勧めしますpaintComponent
。
チェックアウト