JSplitPane Divider Maximum Position

Steven85

Mitglied
Nach langer erfolgloser recherche und vielem probieren frag ich einfach mal hier wie ich die Position des Dividers in der JSplitPane auf ein Maxwert setze, so das das Fenster nur bis zu einer maximalen Position verschoben werden kann.

Java:
private void DSplitPane() 
{		
	JSplitPane splitPane = new JSplitPane();
	getContentPane().add(splitPane, BorderLayout.CENTER);
	splitPane.setDividerLocation(300);

        // Rechtes Pane
	JScrollPane rightPane = new JScrollPane();
	splitPane.setRightComponent(rightPane);

        // Linkes Pane
	leftPane = new JScrollPane();
	splitPane.setLeftComponent(leftPane);
	leftPane.setLayout(null);
}

Als zweites würde mich noch interessieren ob der Befehl setLayout(null) dafür sorgt das auf der linken Seite kein Scrollbalken erscheint.
 
Also in der API steht, dass die [JAPI]JSplitPane#getMaximumDividerLocation()[/JAPI] durch die UI bestimmt ist. Also entweder du schreibst dir eine eigene UI oder du überschreibst SplitPane und überprüfst händisch, ob der maximale Wert erreicht ist.


Also bei [JAPI]JScrollPane[/JAPI] gibts beim Konstruktor ScrollbarPolicies die du mit Bsp.:
Java:
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
einstellst, die du auch ändern kannst!
 
Nach langer erfolgloser recherche und vielem probieren frag ich einfach mal hier wie ich die Position des Dividers in der JSplitPane auf ein Maxwert setze, so das das Fenster nur bis zu einer maximalen Position verschoben werden kann.
Üblicherweise setzt man - wie Templarthelast bereits erwähnt - eher die MinimumSize der Komponenten, um zu verhindern, dass diese zu klein werden. Um die Divider auf einen max. Wert zu beschränken, fällt mir eigentlich nur ein die setDividerLocation(...) Methoden zu überschreiben.
Als zweites würde mich noch interessieren ob der Befehl setLayout(null) dafür sorgt das auf der linken Seite kein Scrollbalken erscheint.
Auf einer JScrollPane ruft man niemals setLayout() - egal ob null oder was anderes - auf, damit zerschießt Du die gesamte ScrollPane. Man kann das Layout auf der Komponente, die in der ScrollPane angezeigt wird setzten. Allerdings musst Du mit einem Null Layout auch die PreferredSize der Komponente selbstberechnen, sonst werden die Scrollbalken ebenfalls nicht angezeigt ==> möglichst auf ein Null Layout verzichten
 
Also das mit dem setDividerLocation funktioniert jetzt wunderbar.
Welches Layout soll ich nehmen damit das ganze so aussieht.
Kenne mich noch nicht so wirklich mit Layoutmanagern aus.

Titel

_______
|
...Bild...|
|
_______|
Name


Label
Label
Label
Label

_______
|
...Bild... |
|
_______|
Name

Label
 

Zurück
Oben