2016-12-23 3 views
0

Я пытался добавить JsplitPane в свой проект. Нужно добавить два Jpanel внутри правой панели JSplitPane.SIze of Jpanel внутри JSplitPanel

так, что я сделал сначала добавить Jpanel сказать, что panel1 на правой панели и установите BoxLayout.Y-AXIS и чем добавить две панели внутри panel1.

сейчас в этой первой панели панели есть BoxLayout, и я хочу, чтобы ширина этой панели была размером panel1, но я не в состоянии это сделать.

У кого-нибудь есть идея, как это сделать?

+0

Используйте простую краску приложение к проекту ваших требований, а также общему код, как то, что вы пытались самостоятельно. – Arvind

+0

Для примера [http://stackoverflow.com/a/10110232/230513). – trashgod

ответ

1

Я пытался добавить JsplitPane в мой project.Requirement мне нужно добавить два Jpanel внутри правой панели JSplitPane.

При использовании JSplitPane, мы должны помнить, что это только делит область на две компоненты говорят левый и правый или сверху и снизу. Поэтому, когда мы снова хотим добавить несколько компонентов в одну сторону от JSplitPane, скажем, в нашем случае Вправо, лучше использовать Вложенные разделительные панели. Это означает создание Split Panes внутри Split Panes.

так, что я сделал сначала добавить Jpanel сказать, что panel1 на правой панели и установите BoxLayout.Y-AXIS и чем добавить две панели внутри panel1.

сейчас в этом две панели первой панели имеют BoxLayout и я хочу ширину этой панели, чтобы иметь размер panel1, но я не в состоянии сделать это.

Если вы используете вложенности азделяйте, вы не можете иметь, чтобы создать дополнительный родительский JPanel то, что вы сказали, как panel1. На самом деле панель Split используется для разделения панели на два сегмента. Итак, используя Nesting Split Panes вы создаете еще одну сплит-панель вместо того, что вы создавали как panel1, а затем помещаете две дочерние панели внутри двух панелей, созданных новым JSplitPane, который вложен. Таким образом, вам также не нужно думать о проблеме с размером. Надеюсь, я смогу дать вам понять, и это решило вашу проблему.

Простой способ достичь этого с помощью:

Декларация:

private JSplitPane jSplitPane1; 
private JSplitPane jSplitPane2; 
private JPanel jPanel1; 
private JPanel jPanel2; 

В Конструкторе:

jSplitPane1 = new JSplitPane(); 
jSplitPane2 = new JSplitPane(); 

jSplitPane1.setOrientation(JSplitPane.HORIZONTAL_SPLIT); 
jSplitPane1.setRightComponent(jSplitPane2); 
jSplitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT); 

jSplitPane1.setTopComponent(jPanel1); 
jSplitPane1.setBottomComponent(jPanel2); 

Описанный выше способ является самым простым в достичь того, чего вы хотели. Однако, не встраивая область Split, можно использовать Multi Split Panes, которые могут быть не очень удобными.Тем не менее вы можете взглянуть на этой старой статье в Oracle:

https://community.oracle.com/docs/DOC-983539

+1

Спасибо @Rakibul Islam ... это полезно – nik123