Entfernen Sie die Swing-Komponente mit Validate oder Revalidate

8

Wann immer ich Swing-Komponenten aus JPanel entferne und hinzufüge, soll ich den Aufruf bei validate oder revalidate durchführen?

    
Cheok Yan Cheng 13.05.2009, 18:11
quelle

4 Antworten

4

revalidate() ist im Grunde ein invalidate() gefolgt von einem validate() .

Sehen Sie sich den Java-Quellcode von Sun an.

Sie möchten revalidate() aufrufen.

    
Avrom 14.05.2009, 17:28
quelle
9

revalidate () wäre besser. revalidate () markiert alle Container bis zur obersten Ebene als nicht korrekt oder nicht gültig. Dann ruft es validate () auf der obersten Ebene auf. Die validate () -Methode des übergeordneten Elements überprüft, ob mindestens eines seiner unmittelbaren untergeordneten Elemente als ungültig oder nicht ordnungsgemäß angezeigt wird. es ruft die Validierung des Elternteils auf. revalidate () heißt also automatisch aufrufen validate ().

    
sazamsk 13.05.2009 20:36
quelle
4

Zumindest in Java 7 löscht revalidate() entfernte Komponenten nicht unbedingt vom Bildschirm. Ich glaube, das passiert, wenn die Begrenzungsbox schrumpft. In diesen Fällen rufen Sie repaint() nach dem revalidate() auf.

    
htimesh 28.06.2012 15:27
quelle
3

Ich würde denken, dass revalidate () das ist, was Sie wollen. Die validate () -Methode wird nach einem Aufruf von revalidate () automatisch für Sie aufgerufen. Siehe Java-API für JComponent.revalidate () .

    
Nicholas Smith 13.05.2009 20:12
quelle

Tags und Links