Suchen und Finden
Service
Infos und Kontakt
Swing (S. 605)
Grafische Oberflächen entwickeln zu können war von Anfang an eines der Ziele, welches die Entwickler mit Java verfolgten. Mit der ersten Java-Version 1.0 wurde das AWT ausgeliefert, welches aber die Ansprüche der Programmierer nicht zufrieden stellte. In der Folgeversion des JDK 1.1 wurde das AWT gründlich überarbeitet. Es behielt aber immer noch die Nachteile, die sich daraus ergeben, dass das native GUI der Plattform bei der Komponentenerstellung verwendet wird, z.B. die eingeschränkte Plattformunabhängigkeit. Seit der JDK-Version 1.1 gibt es parallel zum AWT die Swing-Bibliothek. Swing war zunächst in den Java Foundation Classes (JFC) enthalten, seit der Version 1.3 gehört es zum JDK.
21.1 Grundlagen
Swing verfolgt bei der Komponentenerstellung eine andere Strategie als das AWT. Die Komponenten werden direkt auf den Bildschirm gezeichnet und deshalb auch als Lightweight- Komponenten (leichtgewichtig) bezeichnet. Damit ist es möglich, auf allen Plattformen identische Komponenten zu verwenden. Swing bietet eine wesentlich größere Auswahl und leistungsfähigere Komponenten. Dass damit ein erhöhter Speicherbedarf und Verzögerungen bei der Anzeige entstehen können, ist ein Nachteil, der durch die Geschwindigkeit und Speicherkapazität moderner Rechner und einer immer effektiveren Implementierung von Swing heutzutage kaum noch zum Tragen kommt. Ein weiterer großer Vorteil von Swing steckt in der MVC-Architektur (MVC – Model View Controller), nach der die Komponenten aufgebaut sind.
Die Klassen der Swing-Komponenten sind im Package javax.swing und deren Unterpackages enthalten. Die Namen der Klassen beginnen meist mit einem »J«, um sie von den sonst gleichnamigen AWT-Klassen zu unterscheiden. Für die Ereignisbehandlung und die Benutzung der LayoutManager müssen zusätzlich die Packages java.awt und java.awt.event eingebunden werden. Wird Swing zur Erstellung von Applets verwendet, muss das Java Plug-In eingesetzt werden, um das Applet im Browser anzuzeigen.
Hinweis
Ein Grundsatz bei der Erzeugung von grafischen Oberflächen mit Java ist, dass Swing-Komponenten und AWT-Komponenten nicht miteinander vermischt werden sollten. Da bei der Erstellung der Komponenten verschiedene Techniken verwendet werden, kann es zu Überlagerungen von Komponenten und anderen unbeabsichtigten Effekten kommen.
21.2 Fensterklassen
Analog zu den Fensterklassen des AWT gibt es die Klassen JWindow, JFrame, JDialog und JApplet. Sie sind direkt von den entsprechenden AWT-Klassen abgeleitet und haben rein äußerlich den gleichen Aufbau.
Durch die Klasse JWindow werden rahmenlose Fenster generiert.
Ein Fenster der Klasse JFrame besitzt einen Rahmen und eine Titelleiste.
Die Klasse JDialog ist für die Erstellung von Dialogfenstern vorgesehen, die modal angezeigt werden können.
Applets mit Swing-Komponenten werden von der Klasse JApplet abgeleitet.
21.2.1 Aufbau von Swing-Fenstern
In Swing werden die Komponenten nicht wie im AWT direkt auf dem Fenster abgelegt, denn der Aufbau von Swing-Fenstern ist etwas komplexer. Jedes Swing-Fenster besitzt mehrere Panes (Scheiben), die über dem Fenster liegen. Jede Pane erfüllt spezielle Aufgaben.
Die RootPane liegt direkt auf dem Fenster und nimmt die anderen Panes auf.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion




















