alternative / miglioramenti a JSplitPane [chiuso]
-
22-07-2019 - |
Domanda
Ho avuto una finestra di dialogo abbastanza semplice con una coppia di JPanel di dimensioni approssimativamente uguali, contenute in un JSplitPane. Ora sto cercando di aggiungere un terzo JPanel e non sono così sicuro che esista una soluzione ovvia. Esiste un buon framework per il docking delle finestre? o è una cosa orribilmente complessa in cui entrare? Se seguo semplicemente la divisione a 3 pannelli, devo utilizzare una coppia di JSplitPanes nidificati o esiste un'alternativa che consente una divisione a 3 vie?
Soluzione
La libreria SwingX ha classe JXMultiSplitPane che consente di creare qualsiasi layout di pannelli ridimensionabili.
Un ottimo articolo a riguardo è in http://today.java.net/pub/a/today/2006/03/23/multi-split-pane.html
Altri suggerimenti
Supponiamo che tu abbia tre pannelli:
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 );