validate()
: Wenn Sie in Swing eine Komponente erstellen, ist dies nicht valid
die gültige Eigenschaft false
. Eine Komponente gilt als gültig, wenn ihre Breite, Höhe, Position und ihr Material bestimmt wurden. Dies erfolgt normalerweise durch validate()
direkten oder indirekten Aufruf ihrer Methode. Wenn wir validate()
Container aufrufen , validiert es den Container (falls er ungültig ist), indem es seine doLayout()
Methode aufruft , die normalerweise die aufruft LayoutManager
. Jetzt wird jedes Kind, das auf diesen Container gelegt wird, rekursiv validiert, so dass der gesamte Baum angelegt wird und gültig wird.
revalidate()
: revalidate()
soll aufgerufen werden, wenn Sie ein Attribut ändern, das sich auf deren Breite / Höhe auswirkt, und repaint () aufrufen, wenn Sie ein Attribut ändern, das sich auf deren Erscheinungsbild auswirkt. Wenn Ihr Beispiel beispielsweise ein JFrame
enthält JPanel
, haben Sie dieses zu einem bestimmten Zeitpunkt entfernt JPanel
und an seiner Stelle ein neues eingefügt, abhängig vom Inhalt des neu platzierten JPanel
, der Größe der Komponenten im Inneren JPanel
sowie von sich The CONTAINER
selbst (aufgrund dessen) des von ihm verwendeten Layout-Managers), Änderungen. Was es in den ungültigen Zustand versetzt. Um diese Änderung zu validieren, müssen Sie explizit aufrufen revalidate()
.
invalidate()
: Dies ist etwas, das ich noch nie benutzt habe, daher kann ich möglicherweise nicht viele Informationen darüber bereitstellen. Es scheint jedoch, dass die oben dargestellten Szenarien einen kleinen Hinweis darauf geben können, was bei der Verwendung passiert invalidate()
.
revalidate()
ruft nicht andoLayout()
, wasvalidate()
tut. Es ist also nicht wirklich eine Summe von beidem - esrevalidate
ist nicht immer ein gültiger Ersatz fürvalidate
.