8.9.2 | Das Implementierungskonzept von Swing |
Die Ausstattung des AWT wurde gerade für kommerzielle Anwendungen als recht spärlich empfunden. Somit bestand einerseits zwar Nachfrage nach komplexeren Komponenten, andererseits konnte man aber durch die nativen Peers immer nur den kleinsten gemeinsamen Nenner der verschiedenen Plattformen realisieren. Es musste also ein alternatives Konzept gefunden werden.
Dies führte zu den so genannten Lightweight-Komponenten von Swing. Lightweight-Komponenten basieren auf einem nativen Container und sind ansonsten komplett in Java implementiert, einschließlich der Bildschirmdarstellung. Die Oberflächenbibliothek Swing basiert vollständig auf Lightweight-Komponenten und umgeht so die Beschränkungen und die Probleme nativer Peers. Swing verwendet lediglich den ContainerPeer als Schnittstelle zum Betriebssystem. Dieser stellt Swing einen leeren rechteckigen Bildschirmausschnitt zur Verfügung, in dem die Komponenten über Zeichenoperationen in der Java-Implementierung dargestellt werden. Dieser Ansatz gestattet es Swing auch, seine Oberflächen mit verschiedenen Look-and-Feels darzustellen. Zum Austausch eines Look-and-Feels werden einfach andere Zeichenoperationen auf demselben nativen Container ausgeführt.