Похоже, что JComboBox — это один из компонентов Java, который очень, очень ненавидит регулировку высоты... Я пробовал бесчисленное количество комбинаций set[Preferred|Minimum|Maximum]Size()
и различных менеджеров компоновки, пока наконец не заработал следующий GroupLayout
код:
JComboBox cmbCategories = new JComboBox(new String[] { "Category 1", "Category 2" });
...
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(cmbCategories, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)
...
layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(cmbCategories, GroupLayout.PREFERRED_SIZE, 40, GroupLayout.PREFERRED_SIZE)
Но теперь я переключился на JGoodies FormLayout
, который снова отказывается изменять размер чертового поля со списком! В настоящее время у меня есть следующий код:
JPanel contentPane = new JPanel();
contentPane.setLayout(new FormLayout("50dlu, $lcgap, 110dlu, $glue, " +
"default, 1dlu, 45dlu, 1dlu, 45dlu", "2*(default, 0dlu), default, " +
"$lgap, fill:30dlu, $lgap, default:grow"));
...
contentPane.add(cmbPanel, CC.xy(1, 7, CC.FILL, CC.FILL));
который отображает то, что я хочу, в редакторе JFormDesigner, но после запуска программы он просто возвращается к значению по умолчанию!
Так какой магический фокус-покус мне нужно придумать, чтобы заставить это работать?! Я действительно не хочу возвращаться к определению всего дважды в GroupLayout
, но после 5 часов попыток изменить размер чертового поля со списком я на грани облысения!
MTIA всем, кто может помочь :)