Changes between Version 1 and Version 2 of GnowsisGuiTips


Ignore:
Timestamp:
06/02/06 20:39:18 (18 years ago)
Author:
anonymous
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GnowsisGuiTips

    v1 v2  
    55Then, for fancy looks have  
    66 * NicerGui - all our ideas to make the gui nicer 
     7 
     8= Revalidate, Invalidate in Swing = 
     9copied from http://www.uni-koeln.de/rrzk/kurse/unterlagen/java/gui/docs/layouts.html: 
     10'''invalidate''' setzt nur den Layoutzustand der Komponente und aller ihrer Vorfahren (parent, ancestors) auf ungültig, stößt aber kein neues Layout an. Man kann so mehrere invalidates machen, muß danach aber selbst das validate aufrufen. Letzeres ist nicht threadsafe. 
     11 
     12'''revalidate''' setzt ebenfalls den Layoutzustand als ungültig, aber nicht bis zum obersten Vorfahren, sondern nur bis zu einem sogenannten !LayoutRoot (o.ä.). Ein !LayoutRoot ist ein Fenster, das sein inneres Layout ändern kann, ohne seine Vorfahren zu beeinflussen. Hier handelt es sich also um eine Optimierung: es muß nicht der oberste Vorfahr (das umfassende Window) neu layouted werden, sondern evtl. nur ein Unterpanel. 
     13 
     14revalidate stößt aber auch selbst das Neuberechnen des Layouts an, und zwar threadsafe, indem es eine entsprechende Anforderung in die !EventQueue platziert. Man kann davon ausgehen, dass bei der Abarbeitung mehrere revalidates gemeinsam abgearbeitet werden. 
     15 
     16'''conclusion''': use revalidate if you really changed much, use invalidate() and a call to layout() if you do many changes in batch. one call to layout() should do.