Отображение в Jcombo псеводнима значения

Тема в разделе "Java", создана пользователем nvyush, 5 ноя 2009.

  1. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Здравствуйте все!
    Возник следующий вопрос - есть пары код - название, например:
    1 - красный
    2 - жёлтый
    3 - зелёный
    Как реализовать, чтобы в списке выбора JCombo отображались названия, а хранился код?
    Пытаюсь реализовать JTable, у которой значения одного столбца выбираются из комбы. Должны отображаться названия, а сохраняться коды.
    Не судите строго - в java я новичок.
     
  2. skysun

    skysun Гость

    создай класс наподобие:
    Код (Text):
    class XXX{
    int id;
    String color;
    public toString(){return color;}
    }
    И храни объекты класса XXX в JCombo
     
  3. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Спасибо, но это немного не то. Данные хранятся в JTable, а JComboBox используется как editor. В общем обошёлся так - написал рендеры для нужного столбца таблицы и для комбы, а тип данных оставил String. Может коряво, но работает.
     
  4. jCoder

    jCoder Гость

    Удобнее всего здесь, я думаю было бы воспользоваться коллекционным классом (Collection) из пакета java.util. Этот пакет содержит класс HashMap (хэш-таблица), эта структура данных хранит пары ключ- значение. С помощью методов: Object put(Object k, Object v) и Object get(Object v), можно хранить и извлекать данные из хэш-таблицы. Например:

    // Создаешь объект HashTable
    HashMap hm = new HashMap();
    ...
    // Потом заполняешь его
    hm.put("красный", "твой_код1"); // названия цаетов здесь
    hm.put("зеленый", "твой_код2"); // выступают в качестве ключей
    hm.put("желтый", "твой_код3");
    ...
    // Ну, а далее потом уже извлекаешь данные с помощью метода get()
    (нужный_тип) hm.get("красный"); // ключ ты можешь возвращать из JCombo,
    ... // не забудь приводить возвращаемый объект
    и.т.д. // к необходимоому типу (по умолчанию возвращается Object)

    Да, и вот еще, примитивные типы в качестве значения хэш-таблицы использовать нельзя (только объекты), их нужно оборачивать в соответствующие классы "обертки" Integer, Double, Boolean и.т.д. :D
     
Загрузка...

Поделиться этой страницей