|
Objektorientiertes Programmieren mit C++ und JAVA
|
|  
|
31.5 Komponenten mit JAVA-Implementation
|  
|
Die normalen AWT-Komponenten überlassen ihr Aussehen und Verhalten zu einem
großen Teil dem unterliegenden Fenstersystem.
Die Kommunikation zwischen der JAVA-Ebene und der Betriebssystem-Ebene
kann aber für ziemliche große Performance-Einbußen sorgen.
Besonders, wenn man sehr viele normale Komponenten kreiert (ein großes
Array von Buttons oder Textfeldern), kann die Reaktionszeit auf ein
Benutzer-Ereignis recht lang werden.
Komponenten, die sich mit Hilfe von expliziten Grafik-Aufrufen
in paint und update selbst darstellen, heißen
"lightweight components" (analog
"lightweight container").
Auch ihre Reaktion auf Ereignisse
wird auf einem niedrigen Level selbst implementiert.
Die Behandlung der Klassen Container und Component findet
noch auf reiner JAVA-Ebene statt. Auf den Ebenen darunter sind bereits
System-Komponenten beteiligt. Man kreiert Lightweight-Komponenten
daher immer durch direkte Ableitung von einer dieser beiden Klassen.
Da die Darstellung komplett vom Lightweight-Objekt übernommen wird,
wird der zugehörige Grafik-Bereich auch vorher nicht gelöscht. Diese
Objekte sind also immer durchsichtig und müssen sich ggf. selbst
zunächst mit einer Hintergrundfrabe bemalen.
Da auch Lightweight Container andere Objekte beinhalten können, sollte man
immer mit super.paint() die Methode des Unterobjekts aufrufen.
(Dadurch werden dann die entsprechenden Methoden der anderen Objekte
ausgelöst.)