15.36 Alternativen zu AWT und Swing
 
Es gibt Anwendungsfälle, da wollen weder AWT noch Swing passen. Swing ist zwar sehr mächtig, doch kostet es auch viele Ressourcen. AWT ist zwar schlank und recht schnell, bietet aber wenig Komponenten. Sun zeigt auch bisher keine Ambitionen, das AWT weiterzuentwicklen. Das AWT ist aber bei Geräten mit wenig Speicher noch lange nicht abgeschrieben. Für Webseiten müssen es aber oft nicht Applets mit AWT oder sogar Swing-Komponenten sein. Eine einfache Mischung aus HTML und ein wenig JavaScript können durchaus ausreichen. Auch Macromedia Flash ist als alternative Benutzungsschnittstelle eine Wahl, wenn Designer und Programmier denn nicht wieder vorhaben, Benutzungsschnittstellen-Komponenten ganz neu zu entwerfen. Flash ist plattformübergreifend und sehr stark verbreitet – fast jeder Client ist mit einem Flash-Plugin ausgestattet.
15.36.1 XML-Beschreibungen der Oberfläche: Swixml, XUL/Luxor
 
Eine andere Philosophie ist die Trennung der Beschreibung der Benutzungsschnittstelle und der Logik. Zwar ist es guter Stil, das sowieso schon zu trennen, doch noch weiter geht die völlige Loslösung von Java und einer Hinweisung zu einer externen Beschreibung, etwa in XML. Diese Lösung hat auch Microsoft erkannt und arbeitet an XAML (Extensible Application Markup Language), ein Teil vom grafischen Subsystem Avalon der nächsten Generation von Windows (Longhorn). In der Java Welt gibt es zwei populäre Implementierungen: Swixml und XUL.
Swixml (http://www.swixml.org/) ist das Ergebis einer XML-Abildung von Wolf Paulus und eine Swixml-Datei sieht etwa so aus:
<?xml version="1.0" encoding="UTF-8"?>
<frame size="640,480" title="Hallo Welt"
DefaultCloseOperation="JFrame.EXIT_ON_CLOSE">
<panel constraints="BorderLayout.CENTER">
<label LabelFor="tf" text="Hallo Welt!"/>
<textfield id="tf" Columns="20" Text="Swixml"/>
<button Text="Klick mich" Action="submit"/>
</panel>
</frame>
Swixml nutzt SAX und JDOM um die XML-Datei einzulesen und zu repräsentieren und zur Laufzeit eine Swing-Anwendung darzustellen.
Eine Andere Richtung geht XUL (XML User Interface Language), eine plattformunabhängige Beschreibung der Gui, die ursprünglich nur für Mozilla gedacht war; daher ist XUL auch unter http://www.mozilla.org/xpfe/ aufgehoben. Eine XUL-Datei mit einer Schaltfläche sieht etwa so aus:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="bsp" title="XUL-Beispiel"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<button id="open-button" label="Klick mich"/>
</window>
Die Umsetzung dieser XUL-Dateien übernimmt ein Konverter wie Luxor (http://luxor-xul.sourceforge.net/). Das Ergebnis ist wieder eine Oberfläche in Swing.
Weitere Lösungen wie Thinlet, GUI Builder und Ibex sind auf http://xul.sourceforge.net/ aufgelistet.
15.36.2 SWT
 
Da die AWT-Entwicklung nicht erkennbar weitergeführt wird, Swing aber nicht immer die beste Wahl ist, hat IBM für die Entwicklungsumgebung Eclipe eine Alternative zum AWT entwickelt: das SWT (Standard Widget Toolkit). Es erfreut sich größerer Beliebtheit und ist mittlerweile von Eclipse losgelöst. SWT baut auf einen kleinen nativen Kern auf, so dass SWT-Applikationen mit einer DLL oder dynamischen Bibliothek ausgeliefert werden müssen. Eine Umsetzung ist aber auf vielen Plattformen gelungen, neben Windows und MacOS etwa auf diversen Motif-Plattformen, Gtk, Qt und QNX/Photon. (Wer nur unter GNOME und GTK programmiert, der sollte ein Blick auf Java-GNOME unter http://java-gnome.sourceforge.net/ werfen.)
SwingWT
Normalerweise nutzt Swing zur Darstellung der Komponenten die Grundeigenschaften von AWT: mit einem Stift in einer Farbe kann auf eine Oberfläche gezeichnet werden. SwingWT (http://swingwt.sourceforge.net) versucht eine Abbildung der Swing-Komponenten auf das SWT. Das schafft eine performante Oberfläche und ein schickes Aussehen dazu.
|