1. ホーム
  2. java

[解決済み] JFrame.repaint()とJPanel.repaint()の違いについて

2022-02-28 20:54:48

質問

との違いを教えてください。 JPanel.repaint() メソッドと JFrame.repaint() メソッドを呼び出しているのでしょう。 paintComponent() メソッドを実装しています。

明確にすること、ありがとうございます。

どのように解決するのですか?

呼び出し repaint() を実行すると、リペイントマネージャにそのコンポーネントをペイントするよう要求が追加されます。条件が整えば、リペイントマネージャはその Component の paint(...) メソッドが呼び出されます。Componentのpaintメソッドは、その後に paintComponent(...) , paintBorder(...)paintChildren(...) を実行すると、コンポーネント自身とその境界線が描画され、そのすべての子、その子、その子の子などに再帰的に描画がカスケードされます。JFrameに対してこれを呼び出すと、トップレベル・ウィンドウ全体にカスケードが発生し、サブコンポーネントに対してこれを呼び出すと、そのコンポーネントとその子のみに再描画が発生します。

を呼び出すことに注意してください。 repaint() は、リペイントマネージャがコンポーネントを描画することを保証するものではありません(特に、リクエストが重なっている場合)。 詳細については AWTとSwingにおけるペインティング .