2009-08-04 2 views
1

У меня был довольно простой диалог с парой JPanels примерно равного размера, содержащегося в JSplitPane. Теперь я смотрю на добавление третьего JPanel, и я не уверен, что есть очевидное решение. Есть ли там хорошая стыковка окон? или это ужасно сложная вещь? Если я просто придерживаюсь 3-панельного раскола, мне нужно использовать пару вложенных JSplitPanes или есть альтернатива, которая позволяет использовать трехпозиционное разделение?альтернативы/улучшения JSplitPane

ответ

1

Допустим, у вас есть три группы:

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

Обратите внимание на последнюю строку. Вы добавляете * LAST * splitPane в контейнер, а не первый, как я, а затем задавались вопросом, почему другие не видят. Совершенно неочевидно. – Bradjcox

+0

Вот как я интуитивно сделал свой графический интерфейс с 3 панелями. Однако это вызывает проблемы с изменением размера разделенных панелей: правая панель теперь может быть изменена по левой панели, но не наоборот. Попробуйте переключить главную панель на splitPaneLeft, чтобы увидеть различные функции изменения размера. Выберите стиль, который наилучшим образом соответствует вашему графическому интерфейсу. – Ron