# Eigenes Layout schreiben



## 1337iceskater (5. Nov 2012)

Hallo Leute,

ich interessiere mich schon länger für Layouts in Swing und spiele auch schon länger mit dem Gedanken, ein eigenes zu entwickeln, was sich beliebig anpassen lässt.

Allerdings habe ich bis jetzt keinerlei Ideen, wie man sowas umsetzen könnte, bzw wie man allgemein ein Layout überhaupt erstellt.
Gibt es da konkrete Methoden, die man implementieren muss? Oder läuft man in dem Layout effektiv nur über alle Komponenten drüber und verpasst denen mit dem Null-Layout einen expliziten Koordinatenwert?
Das würde dann ja zumindest gegen die allgemeine These sprechen, dass das Null-Layout böse ist.

Ich würde mich über Anregungen zur Layout-Erstellung freuen, die mir helfen, die Grundzüge eines Layouts zu verstehen und umzusetzen. Die Feinheiten bekomme ich dann auch selbst hin, mir fehlt nur leider der erste Ansatz. Falls es schon ein Tut gibt, reicht auch ein einfacher Link dazu!

Danke euch schonmal im Vorfeld!

LG Stefan


----------



## Kevin94 (5. Nov 2012)

Also die Theorie zu Layouts in Swing ist relativ einfach: Jedes JPanel hat einen [JAPI]LayoutManager[/JAPI] und bei jedem zeichnen positioniert der die einzelnen Komponenten da, wo er sie haben will. Du musst dir also nur einenen Algorithmus zur Positionierung ausdenken und dann LayoutManager implementieren (bzw. LayoutManager2).
Aber Prinzipiel macht dieser LayoutManager am Ende tatsächlich nichts anderes als jeder Componente mit den entsprechenden set-Methoden ihren Platz und Eigenschaften zuzuweisen.


----------



## 1337iceskater (5. Nov 2012)

Wenn ich das also richtig verstehe, könnte ich genauso einfach einen Algorithmus in der Klasse implementieren, der dann alle Komponenten nimmt und diese positioniert? Dann wären zwar alle Richtlinien der Objektorientierung verletzt, aber von der Theorie wäre das doch das selbe, oder?

Danke schonmal!


----------



## Kevin94 (5. Nov 2012)

Ja du könntest auch einfach ein null-Layout setzten und in deiner Klasse alle Componenten manuell nach diesem Algorithmus setzen. Allerdings kannst du dann nicht dynamisch auf neue hinzugefügte Componenten oder eine Größenveränderung des Fensters reagieren und Code-Wiederverwendung wirst du wohl auch vergessen können.
Im allgemeinen sind die vorhandenen LayoutManager (in JDK und aus dem Web) allerdings volkommen ausreichend, wenn ein einzelner nicht zum Ziel führt, kann man auch zwei oder drei schachteln.


----------



## Volvagia (6. Nov 2012)

Ich hab mein kleines Tutorial zu einen eigenen LayoutManager aktualisiert:
http://www.java-forum.org/entwuerfe/143535-eigenen-layoutmanager-schreiben-neue-version.html

Vielleicht hilft es dir ja weiter. Wie Kevin sagte, es ist eine simple Anordnung von Components.


----------

