Благодаря связыванию таблицы «модель» и jComboBox с использованием Netbeans 8.2, я смог отобразить model_description в jComboBox.
Я понятия не имею, что делает привязка Netbeans, но этоне кажется хорошим решением для меня.Что если вы когда-нибудь перейдете с платформы Netbeans на то, как будет работать ваш код или как вы сможете это сделать в будущем?
Вместо этого я бы предложил вам сохранить пользовательский объект в JComboBox.Таким образом, вы можете сохранить свой объект Item в поле со списком, а затем создать пользовательское средство визуализации, чтобы отобразить «описание» в поле со списком.
Когда вы хотите выбранный элемент, который вы просто используете:
comboBox.getSelectedItem()
и у вас есть доступ к вашему объекту Item со всеми его свойствами.
Пользовательский рендерер будет выглядеть примерно так:
class FooRenderer extends BasicComboBoxRenderer
{
public Component getListCellRendererComponent(
JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof Foo)
{
Foo foo = (Foo)value;
setText( foo.getDescription() );
}
return this;
}
}
Замените объект "Foo" на ваш "Item""object.
Однако при использовании пользовательского средства визуализации вы разрушите поле со списком, так как вы больше не сможете выбирать элемент с помощью клавиатуры, вводя первый символ в описании элемента.См. Combo Box With Custom Renderer для получения дополнительной информации об этой проблеме и решении.