# eigener Layoutmanager?



## JavaIsToll (2. Apr 2009)

Hallo,
ich habe eine recht komplexe GUI in meinem Programm entwickelt. Es sind mehrere Buttons, Textfelder und Dropdowns welche alle an einem bestimmten Platz sein sollen und eine von mir festgelegte Größe haben sollen. Im moment ist das ganze ohne einen Layoutmanager realisiert, also null. Da ich keinen Manager gefunden habe der diese Ansprüche erfüllen würde. Allerdings hat das den Nachteil, dass man nicht die Größe des Fensters verändern kann, bzw. es macht kein Sinn weil nix mitverändert wird. Nun möchte ich das allerdings auch haben!
Bloß wie mache ich dass? Eine Überlegung von mir wäre ein Listener anzusetzen der immer bescheid sagt wenn die Fenstergröße verändert wird und dann alle Componenten neuskalliert. Nur denke ich mir das das evtl. Rechentechnisch zu aufwändig ist. Wie würde man seinen eigenen Layoutmanager schreiben, dass ist vlt. das beste.
Oder was meint ihr?
Vielen dank!
grüße sebastian


----------



## Schandro (3. Apr 2009)

Eigenen LayoutManager schreiben ist mit Sicherheit die beste Lösung.
(eigene Klasse die entweder LayoutManager oder LayoutManager2 implementiert, les dir dazu am besten die API durch)


----------



## Wildcard (3. Apr 2009)

Meine Behauptung: wenn dir weder die integrierten LayoutManager, noch die im Netz frei verfügbaren genügt haben um deine Components zu positionieren, dann hast du die LayoutManager nicht verstanden. Verabschiede dich von festen Größen, das funktioniert in der Praxis nicht. Spätestens auf einem anderen Betriebssystem passt dann nichts mehr zusammen, oder auch auf dem gleichen Betriebssystem, wenn jemand schlecht sieht und größere Schriften hat.
Was ist mit Lokalisierung? In anderen Sprachen sind die Texte länger/kürzer,...
In einigen Ländern wird von Rechts nach Links gelesen, wie willst du das unterstützen?
Glaub mir, die 2 Stunden zu investieren die LayoutManager zu verstehen, ist nichts im Vergleich zu der Zeit die du benötigen wirst um all das selbst zu implementieren.


----------



## Ebenius (3. Apr 2009)

Ich schreibe ab und an mal einen LayoutManager. Vorausgesetzt Deine kompliziertere GUI lässt sich nicht in mehrere Panele spalten die mit StandardLayoutManagers auskommen, ist ein eigener LayoutManager die eleganteste Lösung. Aber unterschätze den Aufwand nicht, Layouts sind oft nicht so einfach zu berechnen, wie es auf den ersten Blick scheint.

Wildcards Behauptung geht mir (auf mich bezogen) schon zu weit. In vielen Fällen mag das stimmen, in anderen aber auch nicht. Ich habe mehrfach Fälle gehabt in denen alle mitgelieferten LayoutManager in mindestens einer Hinsicht nicht ausreichend waren und die Netzsuche hat nach kurzer Zeit keine entsprechenden Ergebnisse geliefert; also habe ich LayoutManager selbst implementiert.

Kannst Du mal einen Screenshot Deiner GUI machen und an einen Beitrag hängen? Dann kann man ja sehen, ob das mit Standard-LayoutManagers zu bewerkstelligen ist (wenn ja, ist das immer die richtige Lösung!) und wenn nicht, Empfehlungen geben, wie der eigengestrickte LayoutManager arbeiten soll.

Ebenius


----------



## JavaIsToll (3. Apr 2009)

ja erstmal viel ndank. Es ist wahrscheinlich immer irgendwie möglich alles in Panels zu packen. Ich hab das mal kurz überschlagen und würde behaupten, dass ich dann sechs Ebenenen von Panels haben werde oder so. Habe jetzt auch nochmal mit dem GridBackLayout versucht, für einfache Sachen scheint der ganz brauchbar, aber entweder ich bin zu blöd dafür, was ich nie ausschließen würde, oder er ist einfach nicht dafür gemacht.


----------



## Ebenius (3. Apr 2009)

JavaIsToll hat gesagt.:


> Habe jetzt auch nochmal mit dem GridBackLayout versucht,


_Grid*Back* is *Bag*_. 



JavaIsToll hat gesagt.:


> [...] entweder ich bin zu blöd dafür, was ich nie ausschließen würde, oder er ist einfach nicht dafür gemacht.


Deswegen: Mach ne kurze Zeichnung oder einen Screenshot vom Fenster und ich sag's Dir. Sechs Ebenen an Panels muss nicht schlimm sein; das kommt ganz auf die GUI an.

Ebenius


----------



## Wildcard (3. Apr 2009)

Ebenius hat gesagt.:


> Wildcards Behauptung geht mir (auf mich bezogen) schon zu weit. In vielen Fällen mag das stimmen, in anderen aber auch nicht.


Die Behauptung war auch nicht auf dich bezogen. Ein Profi kann so etwas schon tun, aber ich vermute, das es für jemanden der LayoutManager bisher praktisch gar nicht verwendet, nicht ratsam ist einen eigenen zu schreiben.
Weiß man die Bestehenden zu verwenden, kann man für Spezialfälle auch erkennen wo es sich evtl. lohnt einen spezialisierten LayoutManager zu schreiben, aber das JavaIstToll's GUIs komplett aus Spezialfällen bestehen, kann ich mir einfach nicht vorstellen.


----------

