Literatur

Grundlagen der GUI-Entwicklung mit Netbeans (matisse)

Die folgenden GUI-Beispiele werden immer wieder auf ähnliche Weise aufgebaut: ein JFrame, das ein einziges JPanel enthält, wobei dieses den jeweiligen Layout-Manager demonstriert.

Das ist auch generell die Vorgangsweise, die wir zum Designen von Oberflächen empfehlen. Gegenüber dem Verteilen von Einzelelementen („Controls“) direkt auf dem JFrame bietet diese Vorgangsweise den erheblichen Vorteil, dass später auf ganz einfache Weise entschieden werden kann, das bereits vorhandene GUI in etwas Umfassenderes einzubetten – beispielsweise, weil im Nachhinein ein Buttonbar hinzugefügt werden soll.

Da die Beispiele alle gleich aufgebaut sind, gehen wir hier der Grundaufbau aller unserer folgenden Bildschirmmasken durch, die in netbeans mit dem graphischen GUI-Editor „matisse“ erzeugt wurden. Unserer Meinung nach ist matisse der beste (weil leistungsfähigste und dabei einfachste) GUI-Editor für Swing-basierte GUIs.

Im ersten Schritt erzeugen wir in netbeans ein neues JFrame-file. Beachten Sie, dass der Name, den Sie vergeben, gleichzeitig ein Klassenname ist (also mit einem Großbuchstaben beginnen sollte)!

Weg 1, in netbeans:

Strg+N – „Swing GUI forms“ & „JFrame form“ – Klick auf „[Next]“

ODER

Weg 2: Rechtsklick im Project explorer auf das package, in dem das JFrame erzeugt werden soll und aus dem Kontextmenü „new“ – „JFrame form“.

Es öffnet sich in beiden Fällen das gleiche Dialogfenster „New JFrame Form“:

Screenshot Netbeans: New JFrame Form

Klick auf [Finish]

Netbeans legt die Klasse NewJFrame an und startet sofort matisse.

Beachten Sie die drei Buttons/Reiter über der Editorfläche (Source / Design / History), wobei wir uns in „Design“ befinden.

Screenshot: GUI-Editor matisse

Finden Sie als nächstes den „Swing Container“ names „Panel“ (im Screenshot grün markiert), klicken Sie ihn an und klicken Sie in den leeren Editor-Bereich.

Ein JPanel wird auf das JFrame gelegt und durch einen orangen Rahmen dargestellt, der an seinen Rändern 8 „Anfasspunkte“ hat.

Screenshot: JPanel-Darstellung in Netbeans

Vergrößern Sie das JPanel Sie mit diesen Anfasspunkten, bis es die gesamte Größe des JFrame einnimmt.

Screenshot: Vergrößerung JPanel in Netbeans

Das Editor-Fenster sieht jetzt eigentlich genauso aus wie anfangs. Der Unterschied wird aber klar, wenn man den Baum im „Navigator“ betrachtet: wo vorher nur ein „JFrame“ war, ist jetzt ein „JFrame“, das untergeordnet ein „JPanel“ enthält (grüne Markierung):

Screenshot: Navigator in Netbeans

Anm.: Sollte der „Navigator“ bei Ihnen nicht sichtbar sein, können Sie ihn mit Strg+7 einblenden (oder: Menü „Window“ – „Navigating“ – „Navigator“).

Beachten Sie, dass matisse hinter den Kulissen bei diesen Aktionen alles erledigt, was nötig wäre, um die gleichen Objekte „händisch“ zu erzeugen, sprich, in Java zu programmieren (davon können Sie sich überzeugen, indem Sie den Reiter „Source“ wählen und den erzeugten Quellcode anschauen).

Das ist die Grundkonfiguration, auf die wir alle folgenden Beispiele aufbauen, die in netbeans/matisse entstehen (darauf werden wir gesondert hinweisen). Beispiele, die direkt aus Java-Code, ohne matisse zu verwenden, aufgebaut sind, erkennen Sie daran, dass beim Öffnen die Reiter „Source“ / „Design“ gar nicht existieren, und Sie nur Java-Quelltext im „normalen“ Editor zu sehen bekommen. Es ist sogar so, dass Sie die matisse-Beispiele nur selbst in netbeans erzeugen können, denn sie können nicht einfach mit Copy und Paste entstehen!

Text, Code und Bilder © Phaidros (Gast-Autor)