Вы можете сделать это, установив минимальный размер, но правильное значение зависит от шрифта.Вы можете угадать значение или установить его из addNotify
с некоторой помощью из FontMetrics
.
. Обычно я обнаружил, что проще сделать это, сделав первый элемент что-то вроде: "- Выберите Config-- ", или, если вы знаете, что нет элементов для выбора:" - Нет доступных конфигураций - "
Обновление:
Поскольку вы не можете использовать заполнитель, ваши альтернативы зависят от используемого менеджера компоновки и LAF.
В основном это равносильно установке минимального и / или предпочтительного размера JComponent.Это неточно, но я обычно использую GridBagLayout
и у меня хорошие результаты при таком подходе:
@Override
public void addNotify() {
super.addNotify();
combo.setMinimumSize(atLeast(combo.getMinimumSize(), 100, 20));
combo.setPreferredSize(atLeast(combo.getPreferredSize(), 100, 20));
}
private Dimension atLeast(Dimension d, int minWidth, int minHeight) {
d.width = Math.max(minWidth, d.width);
d.height = Math.max(minHeight, d.height);
return d;
}
Замените 100,20 на минимальное значение, которое вам подходит.