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
Aber schließt man die herausgezogen JToolBar so wird eine Exception geworfen:
Verwendet man nun ein JPanel und integriert dort die JToolBar,...
Variante 2
...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!
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);
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!