2016-05-18 3 views
1

Как получить такой макет в Java?Java. Как создать JPanel с изменяемой размерной областью текста и фиксированной областью кнопок?

| --------------------------------------------- - |
| Фиксированная размерная «верхняя» панель с метками
| --------------------------------------- ------- |
| Изменение размера текстовой области
| Он расширяется до большей части родителя
| панель (кроме фиксированных зон)
|
| ---------------------------------------------- |
| фиксированный JTextArea (всегда 2 линии
| полная ширина рамки)
| ---------------------------------- ------------ |
| RightCenteredButtons
| ---------------------------------------------- |

Я пробовал код ниже, но я не могу заставить его работать. Элементы плавающие, текстовые области сталкиваются. Я не могу понять, как расширить область текста до всего доступного кадра, кроме фиксированных областей.

JPanel top = new JPanel(new FlowLayout(FlowLayout.LEFT , 10, 10)); 
top.add(label1); 
    .... 
top.add(labelLast); 
add(top); 
JTextArea area1 = new JTextArea(); 
add(area1); 
JTextArea area2 = new JTextArea(); 
add(area2); 
JPanel bottom= new JPanel(new FlowLayout(FlowLayout.RIGHT , 10, 10)); 
bottom.add(button1); 
    .... 
bottom.add(buttonLast); 
add(bottom); 

ответ

4

Используйте BorderLayout на главной панели.

  1. Создайте панель и добавьте ее в PAGE_START. Затем установите макет панели и добавьте компоненты на панель.
  2. Создать JScrollPane с JTextArea и добавить его в CENTER
  3. Создать JScrollPane с JTextArea и добавить его в PAGE_END

Прочитайте раздел из свинга учебника по How to Use BorderLayout для получения дополнительной информации и работы Примеры.

фиксированной JTextArea (всегда 2 линии полной ширины кадра)

и при создании JTextArea вы используете:

JTextArea textArea = new JTextArea(2, 20); 

, чтобы указать фиксированное число строк.

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