#java #swing #user-interface #layout
#java #swing #пользовательский интерфейс #макет
Вопрос:
Я хочу создать программу таким образом, чтобы компоненты вели себя так, как показано на рисунках ниже
- Текстовое поле и кнопка поиска имеют фиксированные позиции и не перемещаются и не изменяют размер
- Текстовая область также не перемещается, но становится больше или меньше в зависимости от размера окна
Я бы также хотел, чтобы текстовая область была «прокручиваемой», когда она недостаточно велика, чтобы отображать весь текст сразу.
Есть какие-нибудь советы? 🙂
Ответ №1:
Секрет управления макетом заключается в том, чтобы вложить панели в разные менеджеры макетов для достижения желаемого макета.
Итак, вы начинаете с BorderLayout фрейма по умолчанию.
Затем вы создаете панель для своих кнопок и добавляете панель во фрейм:
JPanel buttonPanel = new JPanel( new FlowLayout(...) );
buttonPanel.add( button1 );
..
frame.add(buttonPanel, BorderLayout.PAGE_START);
Затем вы добавляете свою текстовую область во фрейм:
JTextArea textArea = new JTextArea(10, 30);
frame.add(new JScrollPane(textArea), BorderLayout.CENTER);
Теперь две вещи происходят с текстовой областью:
- он изменит размер, чтобы заполнить пространство фрейма
- полосы прокрутки появятся при необходимости.
Прочитайте раздел из руководства Swing по менеджерам компоновки для получения дополнительной информации и рабочих примеров.
Комментарии:
1. И, к сожалению, он забыл: (