Best practice für konkretes Layout

Andi_CH

Top Contributor
Wie erstelle ich am Besten einen Dialog wie unten abgebildet.

Die roten Linien kommen vom Debugmode des verwendeten FormBuilders, sind also nicht notwendig.
Da dieser aber hier offensichtlich unbekannt ist und keine Hilfe zu erwarten ist, frage ich halt nach einen neuen Lösungsweg.

1. Die Texte bei den Feldern haben eine unbekannte Länge, also muss die Breite der Labels dynamisch sein (Sprachabhängig) Die Breite der Ein- bzw des Ausgabefeldes sind fix.

2. "Das ist ein kleiner Text..." kann "beliebig" lange sein Die Breite des Feldes muss gleich sein wie oben Label, Abstände und Eingabefeld zusammen. Der Text muss automatisch umgebrochen werden.

4. Die beiden Knöpfe haben eine feste Dimension, der Abstand muss automatisch so angepasst werden, dass die Breite beider Knöpfe plus dem Abstand gleich wird, wie die oberen Felder. Die Lage hängt von der Höhe des Textfeldes und Grafik (-> 5) ab. (Unterkannte Grafik oder weiter unten)

5. Der Knopf "Test" rechts steht symbolisch für eine Grafik die da dargestellt wird. Breite und Höhe werden 1:1 aus der Grafik übernommen.

Da einen weder API-Beschreibung, noch google, noch Bücher weiterhelfen wenn man noch weiss welche Klassen die geeignetsten sind, muss ich euch mit Fragen löchern.

Was verwende ich hier am Besten?

Und nein, ich mache weder Hausaufgaben noch eine Prüfungsvorbereitung ;-)
 

Anhänge

  • dialog_1.png
    dialog_1.png
    9,6 KB · Aufrufe: 62
  • dialog_2.png
    dialog_2.png
    12 KB · Aufrufe: 52
Verwende Forms Layout von JGoodies. bietet das alles und ist sehr einfach zu konfigurieren.

Lizenz ist BSD Artig also auch für commercial use zu gebrauchen.
 
Hallo Andi,

da ein deutliches Raster erkennbar ist, bietet sich GridBagLayout an.

Gruß,
André

Imho bietet Forms noch mehr und ist wesentlich einfacher zu konfigurieren. Habe mich damals mit GridBag abgemüht was dann mit Forms extrem einfach war.

Wie der Name schon sagt: Forms Layout zum einfachen Gestalten von Formularen!

Es lohnt sich auf jeden Fall die lib anzuschauen!

Edit: Geht natürlich auch mit GridBagLayout. Nur halt komplizierter.
 
Baut das FormsLayout nicht auf dem GridBagLayout auf? Ich hab mich am Anfang auch ziemlich mit dem GridBagLayout abgemüht, aber eigentlich kann man sich das Layouten damit auch vereinfachen...
 
Hm hab noch nicht so genau in die Quellcodes reingeschaut. Möglich wäre es da die Funktionlität ja ähnlich ist.

Forms bietet halt ein viel einfacheres Interface mit vilen zusatzfunktionen (Wie verbinden verschiedener Spaltenbreiten miteinander ect.)
 
Forms bietet halt ein viel einfacheres Interface mit vilen zusatzfunktionen (Wie verbinden verschiedener Spaltenbreiten miteinander ect.)
Wenn du damit meinst, nebeneinander liegende Zellen miteinander verbinden, auch wenn die Spaltenbreite unterschiedlich ist, dann geht das doch mit GBL auch. Oder wo siehst du da die Vereinfachung? Muss aber leider gestehen, dass ich mich mit dem FormsLayout noch nicht wirklich richtig beschäftigt habe, sondern lieber den Kampf mit dem GridBagLayout aufgenommen habe.
 
Im Prinzip kann man alles auch mit GBL machen. Forms ist aber wirklich extrem einfach zu verwenden. Einfach mal das Tutorial durchlesen und staunen ^^

Alleine schon die Möglichkeit die Dialog Units zu verwenden (Abstände Pixelunabhängig). Dadurch bleiben Relationen in den Dialogen auch bei verschiedenen Auflösungen erhalten.
 
Ich verstehe dein Problem bzw deine Frage noch immer nicht, wird deine TextArea zu groß? Setzt du manuell die Preferred Sizes für Componenten?
In deinem letzten Topic hast du was in der Richtung, du müsstest 28 pixel abziehen damit alles gleich groß ist geschrieben.
Ich kenn mich nicht aus im Forms layout, aber ich würde darauf tippen, dass das Layout automatisch Gaps zwischen die Componenten legt, und die Breite dieser Gaps die 28 pixel ausmachen.

Bezüglich Layouting, ich bin ein GroupLayout fan, da gibts diese herrliche Funktion linkSize, mit der man beliebig viele Componenten bzgl Horizontaler oder Vertikaler Größe verlinken kann.
 
Spannend!

Interessant was da abgegangen ist

Ich habe doch genau mit dem gearbeitet und dann zu hören bekommen, dass ich keine Anwort kriege, weil ich eine unbekannte Library einsetze ???:L

Den Prototypen (die vorletzten Sourcen sind im anderen Thread) habe ich damit erstellt und hatte eben das Problem, dass mir ein Panel eine Breite liefert mit denen die anderen dann zu breit werden.

Also weiter nach best Practice gefragt:

Ich verschachtle das Ganze - die drei Teile (Ein-Ausgabe-teil, das Textfenster und die beiden Knöpfe sind je ein JPanel für sich (mit Hilfe des DefaultFormBuilders auf einem FormDebugPanel oder einem JPanel erstellt.)

Die drei werden dann zusammen mit der Grafik in ein weiters Panel gepackt - ist das vernünfitg (die Verschachtelung) oder macht man das eher nicht so?

@bERt0r : Schau dir einfach den anderen Thread an und lass die Source laufen.
Hier in diesem Thread habe ich nicht nach Problemlösugen sondern nach best pratice gefragt - ja es ist eine Tatsache, dass ich noch NIE ein GUI geschrieben habe.
 
Zuletzt bearbeitet:
???:L Ich hab den Überblick verloren. Sind aber auch ... moment ... 34° im Büro und 55% Luftfeuchte ...
 

Zurück
Oben