2014-02-03 3 views
0

Я создал рамку с двумя внутренними объектами JPanel. Эта панель не занимает все пространство в кадре, а только часть. Мне нужно, чтобы они занимали равное пространство внутри рамки.Размер компонента в JPanel

container = frame.getContentPane(); 
matricepc = new JPanel(); 
matrice = new JPanel(); 
matrice.setLayout(new GridLayout(griglia.getRow(), griglia.getColumn())); 
matricepc.setLayout(new GridLayout(griglia.getRow(), griglia.getColumn())); 
container.add(matricepc,BorderLayout.NORTH); 
container.add(matrice,BorderLayout.SOUTH); 

enter image description here

ответ

2
container.setLayout(new GridLayout(0,1)); 
container.add(matricepc); 
container.add(matrice); 

EDIT: Этот конструктор'GridLayout' два параметра: Первый из них это количество строк, а второй представляет собой число столбцов. Когда либо из них 0, то соответствующий номер будет выбран на основе другого, а также количество добавленных компонентов. В этом примере: Вы указываете, что вы хотите 1 столбец (и количество строк не имеет значения - но так как вы добавляете 2 компонента, количество строк будет 2 - таким образом, вы можете также написали new GridLayout(2, 1)

edit2. : не очень связан с исходным вопросом, но более или менее общий совет:. не стоит недооценивать силу гнездящихся для достижения конкретного макета в этом случае, вы можете дать

  • BorderLayout к основному контейнеру (область содержимого)
  • A GridLayout к новому p Анель, который содержит только матричные-панели

и поставить 'panelForMatrices' в основной контейнер:

+0

Можете ли вы explane мне, что означает (0,1)? –

+0

Добавил EDIT с объяснением – Marco13

+0

И если бы я добавил правый боковой Jpanel? –

Смежные вопросы