Swing Welcher Layoutmanager bei ScrollPane?

zap

Mitglied
Hallo,

ich habe ein JPanel in einer JScrollPane. Diesem Panel sollen zur Laufzeit weitere kleinere Panels hinzugefügt werden können. Diese haben eine festgelegte Größe.

Nun möchte ich, dass wenn auf der horizontalen kein Platz mehr ist, er eine "neue Zeile" anfängt, die per Scrollbalken erreichbar ist. Momentan (FlowLayout) fügt er einfach rechts immer neue Objekte ein, sodass man nach rechts scrollen muss. Ich möchte aber, dass man nur nach unten scrollen kann. Habt ihr Tipps?
 
Hallo zap,

schau dir doch hierzu am besten mal das GridLayout oder noch besser das GridBagLayout an. Damit sollte dein Vorhaben realisierbar sein.

Gruß
TB94
 
Hi,

danke für die Antwort 🙂
Ich denke, das Gridlayout passt nicht so gut, weil ich ja nicht weiß, welche Fenstergröße der User nutzt. Durch ein größeres Fenster würden ja mehr Elemente nebeneinander passen, bevor ein Zeilenumbruch kommt ( = es gäbe mehr Spalten).

Soweit ich das Flowlayout verstanden habe, sollte er da eigentlich automatisch einen Zeilenumbruch einfügen, sobald kein Platz mehr da ist. Leider packt er nach rechts hin einfach immer mehr Elemente rein, die man dann nur nich mehr sieht.
Wie kann ich erreichen, dass bei fehlenden Platz automatisch ein Zeilenumbruch eingefügt wird?
 
Hmm anscheinend muss ich eine preferred size eingeben, bevor er den Umbruch macht. Das würde dann natürlich einen Strich durch die Rechnung machen, dass sich die Anordnung an die Fenstergröße anpassen soll.
Gibt es da eine generische Lösung? Ansonsten nutze ich ein Grid- oder BoxLayout.
 
Wenn die Panel eine feste Größe haben, dann benutzt doch einfach gar kein Layout und berechne dir die Positionen eben selber. Ist doch viel einfacher

Gruß

Claus
 

Zurück
Oben