# Tipps für GUI-Layout



## pr (8. Jan 2014)

Ich  möchte eine relative simple GUI entwerfen, mit folgender Aufteilung: 


```
-------------------------------
| Menü  |         Auswahl     
|       |         wird hier     
|       |         angezeigt   
|       |                              
|       |                              
|       |                              
|       |                              
-------------------------------
```

Ich will keinen GUI-Designer verwenden. Erstens, um das manuellen Erstellen einer GUI mit Swing zu lernen, zweitens glaube ich, dass handgeschriebener Code hier wesentlich schlanker wäre. 
Im Bereich "Menü" sollen dann noch verschiedene Steuerelementer gebracht werden, wie ein Listenfeld, Buttons, etc. etc. - nichts Besonderes eben ... Das Menü soll eine fest definierte Breite haben, der Anzeigebereich rechts den restlichen Bereich des Fensters einnehmen. 

Kann mir jemand Literatur und/oder Tutorials empfehlen, mit denen ich ans Ziel komme? Habe bisher null Ahnung von GUIs in Java. Ich möcht, wie gesagt, Swing verwenden. Außerdem würd ich mich über Tipps freuen, mit welchem/welchen LayoutManagern ich das gewünschte Layout am besten umsetze ... 

Thx


----------



## dzim (8. Jan 2014)

Da du neu in der Materie bist, hier mein erster Tipp: Vergiss Swing! Sofort! Oracle entwickelt es nicht weiter und damit ist es de facto tot.
Also mein zweiter Tipp: Verwende stattdessen JavaFX. Das ist der Nachfolger von Swing. Oracle arbeitet gerade kräftig an dessen Weiterentwicklung und die GUIs sehen damit - auch ohne gigantische Arbeit zu investieren - gut aus.

Du kannst hier anfangen: JavaFX Documentation Home | JavaFX 2 and JavaFX 8 Tutorials and Documentation

Vorteil von JavaFX ist, dass du die GUI fast vollkommen getrennt vom Code entwickeln kannst, indem du sie in XML definierst. Dafür gibt es von Oracle einen offiziellen GUI-Builder namens "SceneBuilder" (der sich, glaube ich, auch in NetBeans integriert) und in Eclipse eine eigene DSL (Domain Specific Language - eine etwas einfachere Sprache als das normale XML-Format - die XML wird stets live aus der besagten DSL erstellt).

Ein Paar Infos und ein kleines Beispiel findest du in meinen Antworten zu diesem Post: http://www.java-forum.org/awt-swing-javafx-swt/157033-applet-komponenten-flackern.html

Viel Erfolg!


----------



## turtle (8. Jan 2014)

> Erstens, um das manuellen Erstellen einer GUI mit Swing zu lernen, zweitens glaube ich, dass handgeschriebener Code hier wesentlich schlanker wäre.


Ersteres find ich gut:toll:

Zweites Argument stimmt nicht (mehr).
Die früheren GUI-Builder erzeugten wirklich Schrott-Code und waren praktisch nicht wartbar. Dies lag meiner Meinung nach an den "doofen" Layout-Managern, die es damals gab.

Mein absolutes Lieblings-Layout ist das *jGoodies FormLayout.* Der wird hervorragend vom Eclipse Swing Designer unterstützt. (Dazu kannst du das WindowBuilder-Plugin installieren).

Wenn du noch nichts mit Swing zu tun hattest,empfehle ich aber zunächst einen GUI-Builder zu verwenden und dann sich in den generierten Code einzuarbeiten und begreifen, warum der Builder diesen Code erzeugt hast und keinen anderen erzeugt hast. Insbesondere kannst du einfach die GUI ändern und anschauen, welche Auswirkungen im Code das nach sich zieht.

Mein drittes Argument ist
Swing befindet sich in Maintenance-Mode, sprich es wird nicht mehr aktiv entwickelt. Stattdessen wird Java-FX empfohlen. Ist deine Entscheidung ob du dich mit Swing noch auseinander setzen möchtest.


----------

