У меня есть несколько панелей JPanel, которые нужно расположить вертикально. Для этого я хочу исправить ширину JPanels. Потому что если они будут слишком короткими по сравнению с шириной окон, то они будут идти горизонтально (одно за другим), а я этого не хочу. На данный момент ширина JPanel непостоянна, потому что ширина JRadioButton (включенного в JPabel) непостоянна. Как сделать ширину JRadioButton постоянной? На данный момент она не постоянна из-за метки (которая может быть разной).
Могу ли я исправить ширину JRadioButton?
Ответы (1)
Если целью является размещение панелей определенным образом, вы должны использовать LayoutManager вместо того, чтобы думать об изменении размеров отдельных компонентов только для макета. По умолчанию Swing использует FlowLayout, и поэтому ваши панели падают одна за другой, пока есть место в «строке» (и тогда они перетекают на следующую строку)
Попробуйте использовать GridBagLayout, это не так сложно, как может учебники / статьи говорят. Один или два часа, которые вы потратите на изучение этого, будут большим подспорьем. Это поможет вам организовать ваши компоненты очень гибким образом.
Кстати, как вы разрабатываете свои пользовательские интерфейсы? Если вы используете IDE (Eclipse+плагины или NetBeans), затем IDE должен помочь вам сделать разметку (скажем, через GroupLayout).
Если вы пытаетесь вручную кодировать графический интерфейс, то GridBagLayout — лучший способ получить «управление».