Ответ 1
Создайте JPanel и добавьте к нему свои радиообъективы. Не забудьте установить макет JPanel на что-то подходящее.
Затем вызовите panel.setBorder(BorderFactory.createTitledBorder(name));
Попытка создания GUI-приложения в Java/Swing. Я в основном используется для "рисования" графических интерфейсов на стороне Windows с помощью таких инструментов, как VB (или, точнее, Gupta SQLWindows... интересно, сколько людей знают, что это такое;-)).
Я не могу найти эквивалент группового поля в Swing...
С помощью группового окна у вас есть квадратный квадрат (обычно с заголовком) вокруг нескольких связанных виджетов. Одним из примеров является групповой блок вокруг нескольких переключателей (с заголовком, объясняющим, что такое радиокнопки, например групповой блок под названием "Секс" с переключателями "Мужской" и "Женский" ).
Я немного искал... единственный способ, которым я нашел, - добавить подпанель, установить границу на субпанели, а затем добавить все виджеты в "группе" в подпанель, Есть ли более элегантный способ сделать это?
Создайте JPanel и добавьте к нему свои радиообъективы. Не забудьте установить макет JPanel на что-то подходящее.
Затем вызовите panel.setBorder(BorderFactory.createTitledBorder(name));
Другие уже комментируют JPanel и используют TitledBorder, что хорошо.
Однако, когда вы играете с Swing LayoutManagers, вам может показаться, что это раздражает то, что компоненты в разных JPanels не могут правильно выровняться (каждая панель имеет свой собственный LayoutManager).
По этой причине это хорошая практика (проверьте "JGoodies" в Интернете для получения более подробной информации) в GUI Swing, чтобы НЕ использовать TitledBorders, а отдельные группы компонентов в JPanel с помощью JLabel, за которым следует горизонтальный JSeparator.
Ref. " Первая помощь для качания"
Поле "Группа" - это всего лишь набор "логически сгруппированных виджетов".
Это в мире свинг JPanel
.
Добавьте свои виджеты в JPanel
.
Задайте свой тип границы "Titled Border" и дайте заголовок, то же самое, что и имя фрейма VB6.
Voila. У вас есть групповой ящик.
Вот цитата из javadocs JRadioButton с тех пор, как вы подняли переключатели.
Реализация переключателя - элемент, который может быть выбран или отменен, и который отображает его состояние для пользователя. Используется с объектом ButtonGroup для создания группы кнопок, в которых может быть выбрана только одна кнопка за раз. (Создайте объект ButtonGroup и используйте его метод add для включения объектов JRadioButton в группу.)
Примечание. Объект ButtonGroup - это логическая группировка, а не физическая группировка. Чтобы создать панель кнопок, вы все равно должны создать JPanel или аналогичный контейнер-объект и добавить к нему Border, чтобы отключить его от окружающих компонентов.
Не AFAIK, по крайней мере, не со стандартными виджетами.
В VB у вас есть групповой виджет, который по существу является панелью + границей.
В Swing у вас есть JPanel, который является виджнем контейнера, и вы создаете и устанавливаете на нем пограничный объект, только если вам это нужно. Можно утверждать, что это более элегантно, поскольку вы не платите за то, что вы не используете (например, границу)
Как упоминал Дэвид Коэль о настройке границы с помощью Java-кода, вы также можете достичь аналогичного результата в режиме конструктора.
Я отвечаю на основе комментария Uri, в котором объясняется, что означает OP под Group Box
:
Uri: Я думаю, что он означает группу управления, которую вы видите во многих диалоговых окнах, где у вас есть квадрат вокруг кучки виджетов, например, радиокнопок.
Насколько я знаю, каждый JComponent
может установить границу для себя, поэтому вам не нужна вторая панель.