2009-08-04 11 views
1

Ich hatte einen ziemlich einfachen Dialog mit einem Paar JPanels von ungefähr gleicher Größe, die in einem JSplitPane enthalten sind. Jetzt suche ich nach einem dritten JPanel und ich bin mir nicht sicher, ob es eine offensichtliche Lösung gibt. Gibt es ein gutes Fenster-Docking-Framework da draußen? oder ist das eine schrecklich komplexe Sache, in die man eindringen kann? Wenn ich mich nur an den 3-Panel-Split halte, muss ich dann ein Paar verschachtelter JSplitPanes verwenden oder gibt es eine Alternative, die einen 3-Wege-Split ermöglicht?Alternativen/Verbesserungen zu JSplitPane

Antwort

1

Angenommen, Sie haben drei Tafeln:

JPanel panel1; 
JPanel panel2; 
JPanel panel3; 

// set up panels 
... 

// put three panels into a horizontal split pane, 
// with 2 resizeable dividers 
JSplitPane splitPaneLeft = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); 
JSplitPane splitPaneRight = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); 
splitPaneLeft.setLeftComponent(panel1); 
splitPaneLeft.setRightComponent(panel2); 
splitPaneRight.setLeftComponent(splitPaneLeft); 
splitPaneRight.setRightComponent(panel3); 

// put splitPaneRight onto a single panel 
JPanel panelSplit = new JPanel(); 
panelSplit.add(splitPaneRight); 
+0

Beachten Sie die letzte Zeile. Du fügst dem * LAST * splitPane den Container hinzu, nicht den ersten, wie ich es getan habe, dann frage ich mich, warum die anderen nicht erscheinen. Ziemlich nicht offensichtlich. – Bradjcox

+0

So habe ich intuitiv meine GUI mit 3 Panels arbeiten lassen. Dies führt jedoch zu Problemen bei der Größenanpassung der geteilten Fenster: Das rechte Fenster kann jetzt über das linke Feld skaliert werden, aber nicht umgekehrt. Versuchen Sie, das Master-Panel auf splitPaneLeft umzuschalten, um verschiedene Größenänderungsfunktionen zu sehen. Wählen Sie den Stil, der am besten zu Ihrer GUI passt. – Ron

Verwandte Themen