2009-05-13 11 views

risposta

4

revalidate() è fondamentalmente un invalidate() seguito da un validate().

Guardare il codice sorgente Java di Sun.

Si desidera chiamare revalidate().

+0

"fondamentalmente" lo sta allungando. Se fai un 'invalidate()' seguito da 'validate()', non otterrai gli stessi risultati di 'revalidate()'. –

9

revalidate() sarebbe meglio. revalidate() contrassegna tutto il contenitore fino al livello superiore come non appropriato o non valido. Quindi chiama validate() al livello più alto. Il metodo validate() del genitore controlla se almeno uno dei suoi figli immediati è segnalato come non valido o improprio. chiama convalida del genitore. quindi chiamare revalidate() significa automaticamente chiamando validate().

4

Almeno in Java 7, revalidate() non necessariamente "cancella" i componenti rimossi dallo schermo. Credo che ciò accada quando la bounding box si restringe. Per questi casi, chiamare repaint() dopo il revalidate().

Problemi correlati