# Komponenten ausrichten unter Swing



## Goemoe (28. Nov 2003)

Hallo,

wenn man eine GUI erstellt, dann kann man ja ein wenig die Ausrichtung der Komponenten beeinflussen, 
da unterschiedliche Layout Manager die Komponenten unterschiedlich positionieren. Ich bin nun seit einiger Zeit
dabei damit zu experimentieren unterschiedliche Layoutmanager und Container so zu verschachteln, dass ich
ein gewünschtes Ergebnis bekomme und stoße immer wieder an die gleiche Hürde.

Gibt es nicht einen _einfachen_ Weg Komponenten innerhalb eines Containers auszurichten? Ich habe verschiedene
Versuche mit den setAlignment Methoden hinter mir, aber damit nie ein sichtbares Ergebnis erzielt.

Eine Nebenfrage: Wenn ich diverse Panels und Container baue, um eine Komponente dorthin zu bekommen, wo sie hin 
soll, bläht das nur den Code auf, oder wirkt sich das auch auf Speicherbelastung/Geschwindigkeit aus?

Gruß

Goemoe


----------



## pwain (28. Nov 2003)

Eclipse bietet die Möglichkeit eine GUI zu bauen, ich glaube NetBeans auch.


----------



## bygones (28. Nov 2003)

Eclipse hat nicht von vornherein keinen GUI Bilder integriert - es gibt versch. Plugins die das realisieren können - Netbeans hat ihn meines Wissens per se dabei !

Wenn du nach belieben Componenten orientieren willst gibt es zwei möglichkeiten:

1) GridBagLayout
2) Layout auf null setzen und Componenten mit setBorders ausrichten

ich würde ersteres vorschlagen !!


----------



## schalentier (29. Nov 2003)

nimm das:
JGoodies Forms

am besten (und einfachsten) funktioniert der DefaultFormBuilder.
damit kann man sich die arbeit des ausrichtens usw vollkommen sparen. der builder macht das ziemlich intelligent und gut.


----------



## brownie (30. Nov 2003)

Auch der JBuilder hat einen GUI-Designer von Hause aus dabei! Dieser ist sehr empfehlenswert! Das GridBagLayout ist (leider) die verbreitetste Variante, um Komponenten beliebig in Containern auszurichten, wobei bei diesem LayoutManager das oftmals herangezogene Schlagwort "Mächtigkeit" vermutlich mit "Umständlichkeit" verwechselt wurde! Noch ein Tipp zu GUI-Buildern: viele Builder lassen es zu, die GUI mit Hilfe des NullLayouts zu erstellen! Das macht die Sache sehr einfach... Natürlich gilt es immer zu beachten, relative oder absolute Positionen innerhalb der GUI anzugeben! Da Java plattformunabhängig sein soll (der Theorie nach ;-) ), empfiehlt es sich stets mit relativen Positionsangaben (Bsp.: BorderLayout, GridLayout etc.) zu arbeiten. Aber das musst du selbst entscheiden.

Eine weitere Alternative ist das SpringLayout. Dieses kann so ziemlich alles darstellen, der Layout-Code ist allerdings sehr lang! Das GridBagLayout wird oft bevorzugt, weil es mit der JRE frei Haus geliefert wird!

greetz
brownie


----------



## Goemoe (1. Dez 2003)

Erst einmal danke an alle!

Ich mache die GUI nicht nur der GUI wegen, sondern auch um es zu lernen, daher fallen GUI-Builder derzeit völlig weg. Das kann sich später ändern. Ich möchte zumindest in der Lage sein, das was die Builder verzapfen zu verstehen und notfalls anpassen zu können 

An das GridbagLayout habe ich mich noch nicht rangetraut, da das so umständlich aussieht. Aber nach Euren Antworten werde ich mir heute erst das und dann das SpringLayout ansehen.

Ja, ich möchte tatsächlich keine absoluten Werte, da es sowohl Win, als auch Linux tauglich werden soll. Wieder steht der Lernfaktor vor dem Nutzen, aber eine Linuxvariante werde ich wohl tatsächlich brauchen 

Aber Eure Antworten zeigen mir auch, dass es einfache Methoden zur Orientierung offenbar nicht gibt. Schade, denn das würde den ganzen Spaß erheblich einfacher machen. 

Gruß

Goemoe

PS: Danke für den JGoodies Link, das sieht nett aus. Wenn ich soweit bin schaue ich es mir mal genauer an.


----------



## schalentier (2. Dez 2003)

jgoodies sieht nicht nur nett aus, sondern ist auch wesentlich einfacher als GridBag & Co. und das beste: es funktioniert


----------



## Ebenius (3. Dez 2003)

... dann funktioniert sogar ein GridBagLayout exakt wie es soll  :wink: 
Ebenius


----------

