Я разрабатываю графический интерфейс, используя Java Swing с помощью windowbuilder
. Я обнаружил, что в любом макете невозможно изменить размер компонентов с помощью перетаскивания мышью (даже если он показывает точки, которые нужно выбрать и перетащить, чтобы изменить размер). В частности, уменьшение размера — это то, что наиболее важно сделать.
Изменение размера разрешено только в двух макетах: один в Absolute Layout
(что совсем не подходит для практических целей, учитывая разные размеры экрана, с которыми должен лучше отображаться графический интерфейс) и другой в групповом макете (который также не подходит для дизайна из-за к его сложному коду).
Ниже приведен пример, в котором я разместил два JLabel
и теперь пытаюсь добавить JComboBox
в место, указанное полем Green
.
Но когда я помещаю JComboBox
, его размер по умолчанию равен fill horizontally
. Даже если я изменю fill
на «Нет» и попытаюсь изменить размер, я не смогу изменить его размер. Ниже приведен результат после добавления JComboBox
:
В фоновом режиме есть JPanel с GridBagLayout со следующими свойствами:
Я обнаружил, что, изменяя значения в свойствах columnWidths
и rowHeights
свойства GridBagLayout
, можно контролировать размер столбцов/строк сетки. Но я не могу понять Size of which columns/rows all those values represents?
. (Я не нашел прямой связи между количеством этих значений и количеством столбцов/строк, отображаемых на панели)
Есть ли способ изменить размер компонентов? И может ли кто-нибудь объяснить, что представляют собой эти значения в свойствах columnWidths
и rowHeights
GridBagLayout
?