Axel Rogat
Objektorientiertes Programmieren mit C++ und JAVA
 
31.4: Fenster Kapitel 31 32: Events 
 
  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.)

 
31.4: Fenster Startseite 32: Events 
 

© 1998 Axel Rogat