Вопрос

У меня был довольно простой диалог с парой 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 );
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top