Der Aufruf von repaint()
für eine beliebige Komponente fügt dem Repaint-Manager eine Anforderung zum Zeichnen dieser Komponente hinzu. Wenn die Bedingungen korrekt sind, veranlasst der Manager, dass die Methode paint(...)
der Komponente aufgerufen wird. Da die paint-Methode einer Komponente dann paintComponent(...)
, paintBorder(...)
und paintChildren(...)
aufruft, wird die Komponente selbst bemalt, ihr Rahmen und ihre Kaskade werden rekursiv für alle ihre untergeordneten Elemente, ihre untergeordneten Elemente, ihre untergeordneten Elemente usw. angezeigt auf JFrame bewirkt, dass diese Kaskade im gesamten Fenster der obersten Ebene auftritt, während das Aufrufen einer Unterkomponente dazu führt, dass nur diese Komponente und ihre untergeordneten Elemente neu gezeichnet werden.
Beachten Sie, dass das Aufrufen von repaint()
nicht garantiert, dass der Repaint-Manager die Komponente zeichnet, insbesondere wenn gestapelte Anforderungen vorhanden sind. Für mehr Details lesen Sie bitte Malen in AWT und Swing .
1. Wenn die Methode repaint()
aufgerufen wird, benachrichtigt der Event-Handler-Thread alle Komponenten, und dann ruft jede Komponente ihre paintComponent()
-Methode auf.
2. Der Aufruf von JPanel.repaint()
hat die gesamte Komponente innerhalb des JPanels zu repaint()
, und der Aufruf von JFrame.repaint()
wird die gesamte Komponente enthalten der JFrame zu repaint()
.
3. Rufen Sie JFrame.repaint () auf, um das JPanel auch ohne JPanel.repaint () neu zu streichen.
Kurz gesagt,
JPanel.repaint()
wird sich selbst und seine Kinder neu streichen. JFrame.repaint()
wird sich selbst und seine Kinder neu streichen. Aber da JFrame
die Basis ist, wird dies jede Komponente innerhalb neu zeichnen. Überprüfen Sie die Antwort "@Hovercraft Full Of Aels" auf Details.