Graphical User Interface

GUI-Builder für Eclipse im Vergleich

11.11.2004
Von   
Bernhard Steppan arbeitet als IT-Chefarchitekt bei DB Systel GmbH (Deutsche Bahn) in Frankfurt am Main. Er hat 100+ Artikel und zahlreiche Bücher über C++ und Java verfasst. Er betreibt mehrere Blogs, unter anderem http://steppan.net, http://artouro.org und http://tourbine.com

Die Entwurfsansicht (Form Editor) ist sehr leistungsfähig und gestattet die Anordnung von Widgets nach allen erdenklichen Möglichkeiten. Er zeigt aber auch einige Schwächen. Bei manchen Layouts platziert das Plugin Widgets nicht korrekt. Löscht man Widgets, erfolgt manchmal kein Refresh der Oberflächen. Das führt dazu, dass hin und wieder die Konturen der Oberflächenbausteine auf dem Bildschirm stehen bleiben. Erst ein erneutes Laden der Klasse zeigt dann die korrekte Entwurfsansicht. Auch lässt sich bei der Gestaltung von Swing-Oberflächen nicht zwischen dem Look and Feel wechseln, ohne dass entsprechender - in diesem Fall redundanter - Code für das Setzen eines Look and Feel erzeugt wird.

All die genannten Schwächen sind jedoch Bagatellen im Vergleich zur fehlerhaften Synchronisierung zwischen Quelltext und Entwurfsansicht. Sie ist der größte Schwachpunkt des Produkts. Aus diesem Grund sollte man die Synchronisation bei Umstrukturierungen ausschalten oder die Klasse nur in den Texteditor laden. Vergisst man dies und strukturiert das Layout häufiger um, kommt es schnell zu Inkonsistenzen. Das äußert sich zum Beispiel beim Löschen von Widgets in Form von überflüssigen Importanweisungen, die als toter Code erhalten bleiben.

Der Entwurfsmodus von Visual Editor überzeugt nur bei Oberflächen, die mit ihm generiert wurden.
Der Entwurfsmodus von Visual Editor überzeugt nur bei Oberflächen, die mit ihm generiert wurden.

Die Probleme können bei weitgehenden Restrukturierungen dazu führen, dass die Entwurfsansicht einfriert. Zwar verfügt das Plugin für diese Fälle über einen Befehl, den Quellcode erneut zu parsen (KONTEXTMENÜ > RELOAD FORM EDITOR). Doch beim Einfrieren des Form Editor bleibt dieser Menübefehl sinnigerweise verborgen. Der Entwickler hat dann keine andere Wahl, als das Projekt zu schließen und wieder zu öffnen. Alles in allem ist Jigloo ein sehr interessantes Produkt, bei dem einige unübersehbare Schwächen die ansonsten sehr gute Funktionalität beinträchtigen.

Visual Editor

Das Visual-Editor-Projekt (VEP) ist mehr als ein GUI-Builder-Plugin zur Entwicklung grafischer Oberflächen. Hintergrund ist es, eine Basis zur Entwicklung von Eclipse-GUI-Buildern zu schaffen. Bei diesem Projekt standen mehrere Firmen Pate: Der ursprüngliche Code stammt von Advanced Systems Concepts, Canoo, IBM, Instantiations (siehe Window Builder Pro) sowie Red Hat.

Das VEP-Projektteam hat den von den Firmen gespendeten Code mittlerweile in Frameworks konsolidiert und den GUI-Builder Visual Editor in der Version 1.0 geschaffen. Das auf der Eclipse-Homepage erhältliche Tool ist erfreulicherweise jetzt zu Eclipse 3.0.1 kompatibel und als Referenzimplementierung der Frameworks gedacht. Doch wie viele Java-Referenzimplementierungen lässt er sich auch - mit gewissen Einschränkungen - für die tägliche Arbeit einsetzen.

Zur Installation des Plugins lädt man das Produkt entweder konventionell von der Eclipse-Seite herunter und kopiert es in die entsprechenden Ordner der Eclipse-Installation oder verwendet die integrierte Eclipse-Softwareaktualisierung (HELP > SOFTWARE UPDATES). Da sehr viele Abhängigkeiten zu diversen Frameworks existieren, ist der letztere Weg zu empfehlen. Die Softwareaktualisierung prüft vorhandene Abhängigkeiten und lädt alle erforderlichen Bestandteile automatisch über das Internet, so dass eine einwandfreie Funktion des GUI-Builder gewährleistet ist.

Zurückhaltendes Auftreten

Nach der Installation beziehungsweise Aktualisierung ist man zunächst verblüfft, denn man findet den neuen GUI-Builder auch nicht in der Liste der verfügbaren Views. Er tritt zum Beispiel erst dann in Erscheinung, wenn man eine "visuelle Klasse" erzeugt oder eine vorhandene visuelle Klasse (Frame, Panel, Dialog, Window etc.) lädt. Zum Erzeugen von visuellen Klassen gibt es diverse Assistenten, die das Auswählen der Packages und Basisklassen erleichtern. Der Visual Editor arbeitet wie Jigloo und Window Builder Pro mit allen drei Java-GUI-Frameworks zusammen: AWT, Swing und das vom Eclipse-Projekt entwickelte SWT-Framework.