Возможно, вы захотите создать объект с двумя свойствами: путь и текст, который вы хотите отобразить.
Затем вы установите метод toString
для возврата свойства текста.Отказ от ответственности: я не тестировал ни один из этого кода.
public class ValueText {
private String text;
private String value;
public ValueText(final String text, final String value) {
this.text = text;
this.value = value;
}
@Override
public String toString() {
return text;
}
public String getValue() {
return value;
}
}
Тогда вы можете изменить свой исходный массив на что-то вроде:
private Object[] names = {
new ValueText("Dog", "images/dog.gif"),
new ValueText("Bee", "images/bee.gif"),
new ValueText("Panda", "images/Panda.gif")
};
И он должен работать аналогично, только сейчаскогда вы проверяете выбранный элемент, вы можете использовать метод getValue()
, чтобы получить путь.
Возможно, вас также заинтересует пользовательский рендер, но он, вероятно, не нужен для вашего использования: http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer
Обновление Я сделаю исправление после того, как Клеопатра привел несколько убедительных аргументов в комментариях, которые вы должны прочитать ниже.
Более общий и понятный способэто можно сделать с помощью специального средства визуализации, даже если оно очень простое (см. ссылку выше).