Двухпанельный макет в Java (первая панель имеет фиксированный размер, вторая имеет размер остальных) - PullRequest
2 голосов
/ 27 марта 2010

Хочу вот так:

JPanel_Layout.png

Как сделать это идеологически правильным?

1 Ответ

4 голосов
/ 27 марта 2010

Похоже, ваше требование относительно простое в использовании BorderLayout.

Фрагмент кода ниже предполагает, что панель добавляется в JFrame. Следовательно, getContentPane () вызывает.

javax.swing.JPanel jPanel1 = new javax.swing.JPanel();
javax.swing.JPanel jPanel2 = new javax.swing.JPanel();

jPanel1.setMaximumSize(new java.awt.Dimension(60, 32767));
jPanel1.setMinimumSize(new java.awt.Dimension(60, 100));
jPanel1.setPreferredSize(new java.awt.Dimension(60, 300));

getContentPane().add(jPanel1, java.awt.BorderLayout.WEST);

getContentPane().add(jPanel2, java.awt.BorderLayout.EAST);

Укажите максимальную, минимальную и предпочтительную ширину jPanel1 равной 60 пикселей. Оставьте JPanel2 "плавать".

Если требуется разделение панелей, добавьте третью панель фиксированной ширины (скажем, 5 пикселей)

getContentPane().add(jPanel3, java.awt.BorderLayout.CENTER);
...