Java swing сетка кнопок с разными правилами изменения размера для каждого столбца

#java #swing #user-interface #java-11

#java #swing #пользовательский интерфейс #java-11

Вопрос:

я пытаюсь создать панель пользовательского интерфейса, которая служит как форма (я не использую GUI designer). Левая сторона содержит метки, а правая сторона содержит текстовое поле и т.д. Я хочу сделать так, чтобы при изменении размера был только правильный размер (текстовые поля, изменение формы).

В настоящее время я использую GridLayout(x, 2) с одним JLabel и JTextField для каждой строки.

Итак, при изменении размера я хочу сделать так, чтобы это шло
от [(JLabel)|(JTextField)]
Для [(JLabel)|( JTextField )]
нет [( JLabel )|( JTextField )] .

Плюс, конечно, мне нужно убедиться, что все строки всегда совпадают.

Ответ №1:

Если вы хотите использовать единый менеджер компоновки, вы можете использовать GridBagLayout .

Для компонентов во втором столбце вы бы установили weightx ограничение на 1.0f. Это означает, что любое дополнительное пространство будет выделено только для этого компонента.

Прочитайте раздел из руководства по Swing о том, как использовать GridBagLayout. В разделе Specifying Constraints будет более подробно объяснено, как работает это ограничение.

Ответ №2:

GridLayout не может быть использован для этого. Используйте GridBagLayout или более простой в использовании менеджер компоновки, например MigLayout.

Комментарии:

1. Не могли бы вы предложить, как установить что-то подобное? Потому что я думаю, что пропустил такую настройку.