JPanel.repaint()
メソッドとメソッドの違いを誰か説明してください。どちらもJPanelでメソッドをJFrame.repaint()
呼び出していると思います。paintComponent()
明確にしてください、ありがとう
コンポーネントを呼び出すrepaint()
と、そのコンポーネントをペイントするためのリクエストが再描画マネージャーに追加されます。条件が正しければ、マネージャーはコンポーネントのpaint(...)
メソッドが呼び出されるように手配します。コンポーネントの paint メソッドは を呼び出しpaintComponent(...)
、コンポーネント自体がペイントされるためpaintBorder(...)
、paintChildren(...)
そのボーダーとカスケードは、すべての子、その子、その子の子などに再帰的に描画されます。JFrame でこれを呼び出すと、このカスケードが全体で発生します。サブコンポーネントでそれを呼び出すのに対し、トップレベル ウィンドウ全体を呼び出すと、そのコンポーネントとその子のみが再描画されます。
repaint()
呼び出しは、再描画マネージャーがコンポーネントを描画することを保証しないことに注意してください。特に、スタックされた要求がある場合は注意してください。詳細については、AWT と Swing でのペイント を参照してください。
1.repaint()
メソッドが呼び出されると、イベントハンドラー スレッドがすべてのコンポーネントに通知し、すべてのコンポーネントが paintComponent()
メソッドを呼び出します。
2.呼び出しJPanel.repaint()
には JPanel 内の repaint()
すべてのコンポーネントが含まれ、呼び出しJFrame.repaint()
には JFrame 内のすべてのコンポーネントが含まれます repaint()
。
3. JFrame.repaint() を呼び出して、JPanel.repaint() を必要とせずに JPanel も再描画します。