альтернативы / улучшения JSplitPane [закрыто]
-
22-07-2019 - |
Вопрос
У меня был довольно простой диалог с парой JPanels примерно одинакового размера, содержащийся в JSplitPane. Сейчас я смотрю на добавление третьего JPanel и не уверен, что есть очевидное решение. Есть ли хорошая система стыковки окон? или это ужасно сложная вещь? Если я просто придерживаюсь 3-панельного разбиения, нужно ли мне использовать пару вложенных JSplitPanes или есть альтернатива, которая позволяет 3-х стороннее разделение?
Решение
Библиотека SwingX имеет класс JXMultiSplitPane , который позволяет создавать любые макеты изменяемых размеров панелей. Р>
Очень хорошая статья об этом находится по адресу http://today.java.net/pub/a/today/2006/03/23/multi-split-pane.html
Другие советы
Допустим, у вас есть три панели:
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 );