Windowbuilder Kapriolen

Der Windowbuilder für eclipse ist ein feines Tool. Damit kannst Du unkompliziert ein gui bauen, das nur den Standard “Lieferumfang” von Java nutzt. Das wiederum hilft, die auszuliefernde Datenmenge klein zu halten und befreit von der Notwendigkeit, sich um externe Bibliotheken kümmern zu müssen.

Du kannst eine Eingabemaske nach eigenen Wünschen und Erfordernissen zusammenklicken, ohne die Details zu Rahmen und LayoutManagern und und und zu kennen.

Entscheidende Einschränkung: Wenn Du die so erstellte Eingabemaske im Windowbuilder weiter verwenden möchtest – und Du möchtest das, weil eine Maske selten alleine kommt – dann darf diese Maske nichts anderes sein, als Erbe von JPanel. Sobald ein weiteres Interface implementiert wird, kann der Windowbuilder Dein Panel nicht mehr darstellen.

Beispiel: Ich lasse gui-Komponenten gerne java.util.Observer implementieren. Eine gui-Komponente hat ein Model und stellt diesem Model eine Möglichkeit zum Callback bereit. Aber das versaubeutelt dann leider die weitere Verwendung im Windowbuilder. Schade.

Nachtrag: Die Einschränkung ist nicht uneingeschränkt vorhanden. Auf einm Linux Debian mit eclipse 4.5.2 und Windowbuilder 1.8.0.r45 ist sie nicht zu finden. Glück gehabt ;)

Und, liebe Windows-User, so werdet ihr diese Klippe umschiffen: Die gui-Komponente DatenPanel erbt beispielsweise von JPanel, wie gehabt. DatenPanel hat eine anonyme Klasse, die Observer implementiert. DatenPanel hat ausserdem ein DatenGuiModel, das ein Observable ist. Das DatenGuiModel wrappt ein DatenModel, bei implementieren ein gemeinsames Interface. UML-Skizze:

DSC_7708_klein

Funktionierendes Codebeispiel auf Anfrage.

Dieser Beitrag wurde unter Allgemein abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.