Layoutverhalten JSplitpane/ JScrollpane

Woocash

Grünschnabel
Moin,

ich habe ein sehr mehrwürdiges Layoutverhalten und weiß nicht, wie ich es korrigieren soll und hoffe einer kann mir helfen. Hier meine momentane Anordnung:

Auf oberster Ebene habe ich ein JSplitpane. Links ein Jtree und rechts ein JPanel.
In das rechte JPanels (FlowLayout) kommen mehrere kleine JPanels hinein. Wenn dort viele Elemente (JPanel) hinzukommen, werden sie erst nach rechts verteilt, und wenn kein Platz mehr vorhanden ist, in die nächste Reihe gesteckt.
Da es aber sehr viele Elemente geben kann, habe ich um das große Panel in ein JScrollPane gesteckt.

Nun das Problem: Die kleineren Panels werden nicht mehr in eine neue Zeile gebrochen, sondern erstrecken sich horizonal in einer Reihe. Also wenn man viele Elemente hat, kann man ganz schön weit nach rechts scrollen. Ich möchte diese Elemente jedoch gebrochen, sprich auch untereinander haben. Weiß jemand Rat?

hier ein kleiner Code ausschnitt:
// Splitpane
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setContinuousLayout(true);
splitPane.setDividerLocation(150);

// Linke Seite mit einem JTree
JScrollPane paneLink = new JScrollPane(this.createVerzeichnisPanel());
paneLink.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); paneLink.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);

// rechte Seite mit einem JPanel, das wiederum aus mehreren JPanels besteht
JScrollPane paneBPane = new JScrollPane(this.createBilderPanel()); paneBPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); paneBPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDE

splitPane.add(paneLink);
splitPane.add(paneBPane);
splitPane.setOneTouchExpandable(true);
 
Habe ich glaub ich auch schon ausprobiert. Da ordnet er die kleineren JPanels horizonal an und verschwinden dann aus dem Sichtbarkeitsbereich, so dass man anschließend keinen zugriff mehr hat...
Werde das aber heute abend zu hause nochmals probieren.
Danke
 
Habs gerade ausprobiert. Hatte diesen Befehl vorher auch schon drin. Aber dann zieht er die Elemente horizonal ins unendliche, und ich hab keine Scrollbar und kann somit auf die Objekte nicht zugreifen.
 
hallo Woocash,
Soweit ich das verstehe ist das was Du beschreibst normales Verhalten. Du hast ein großes großes Pannel, da das Scroll-Pannel diesem viel "virtuellen" Platz bietet.
Auch ohne das vorher erwähnte JSplitpane würdest Du so etwas bekommen.
Ich würde vielleicht an Deiner Stelle mit der Size oder/und PreferedSize spielen.
dann wird meines Erachtens der benötigte Platz für die Elemente die auf dem Panel mit FlowLayout angeordnet werden und somit die Size des Panels nicht errechnet (so zumindest meine Hypothese).
Anderseits würde ich wenn Du eh nicht scrollen willst das ScrollPanel vielleicht doch weg lassen, oder statt FlowLayout ein anderes mit mehr Möglichkeiten verwenden.

In der Hoffnung das es so funktioniert wie ich denke...
Takidoso
 
Zurück