Problem bei JToolBar in JSplitPane

g-a-s-t

Mitglied
Hallo zusammen,

zunächst einmal mein gewünschtes Szenario. Ich habe ein JFrame mit einem JSplitPane, dessen rechter Bereich eine JToolBar enthält. Diese soll man nun auch verschieben können (bspw. raus aus dem JFrame). Wird die ToolBar herausgezogen, so soll gleichzeitig die rechte Seite (also die Größe) der JSplitPane angepasst werden.
Das heißt die linke Seite erhält die maximale Breite des JFrame.

Mit dem folgendem Codeschnipsel funktioniert das oben Beschriebene ganz einfach.
Variante 1
Code:
JSplitPane split= new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JToolBar bar = new JToolBar(JToolBar.VERTICAL);
split.add(bar, JSplitPane.RIGHT);

Aber schließt man die herausgezogen JToolBar so wird eine Exception geworfen:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: West

Verwendet man nun ein JPanel und integriert dort die JToolBar,...
Variante 2
Code:
JPanel right = new JPanel();
JSplitPane split= new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
JToolBar bar = new JToolBar(JToolBar.VERTICAL);
right.add(bar);
split.add(right, JSplitPane.RIGHT);
...so funktioniert zwar das Wiedereinfügen der JToolBar nachdem diese herausgezogen wurde, jedoch wird in diesem Fall die Breite der rechten Seite der JToolBar nicht verändert. (da das JPanel ja nicht mit herausgezogen wird)

Welche Möglichkeiten gibt es um eine JToolBar in ein JSplitPane zu packen ohne dabei die Funktionalität (also mit setFloatable(true)) zu verlieren?
Am liebsten wäre mir eine Lösung mit Variante 1.

Ich bin jedem Hinweis dankbar!
 
Hallo Burni,

Dein Tip würde natürlich soweit funktionieren, jedoch sollen verschiedene Elemente in der JToolBar (eine JTabbedPane (mit JTable's, JButtons, ..)) Platz finden. Deshalb sollte der rechte Bereich bei Bedarf auch in eine gewünschte Größe/Breite gebracht werden können.

Aber vielleicht mach ich es doch erstmal mit dem BorderLayout...
 
Zurück