Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ComboBoxModel - how to use? 
:(
    Опции темы
PashaOvechkin
Дата 21.5.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 1
Всего: 4



Привет!

Необходимо заполнить комбо бокс например такими -> 


Код

private class  Man {

public int age;
public String firstName;
public String lastName

}


обьектами.
И важно что бы в комбо боксе был указан именно возраст. А не то, что вернёт toString();
Видимо использовать нужно модель, ни что то не получилось.

Тоже самое нужно с JMenuItem....

Спасибо!
PM MAIL Skype   Вверх
fixxer
Дата 21.5.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 15
Всего: 27



так возвращай из toString() возраст


--------------------
user posted image
PM MAIL ICQ   Вверх
PashaOvechkin
Дата 21.5.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 1
Всего: 4



ето бад решение.

Но я сделал ето используя реендерер 
PM MAIL Skype   Вверх
math64
Дата 21.5.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 5
Всего: 72



Да, для комбо-боксов лучше применить рендерер.
А для меню удобнее использовать Action
Код

ManAction extends AbstractAction {
  Man man;
  public ManAction(Man man) {
    this.man = man;
    ...
  }
  ...
}
menu.add(new ManAction(man));

PM   Вверх
Connie
Дата 21.5.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



коряво, но...
Код

public class Main extends JFrame{
    public Main(){
        JComboBox cb = new JComboBox(new MyComboModel());
        ((MyComboModel)cb.getModel()).addElement(new SomeClazz(1,1));
        ((MyComboModel)cb.getModel()).addElement(new SomeClazz(2,2));
        ((MyComboModel)cb.getModel()).addElement(new SomeClazz(3,3));
        cb.setSelectedIndex(0);
        add(cb);
        
        pack();
        setLocationRelativeTo(null);
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Main mf = new Main();
        mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mf.setVisible(true);
    }

}


Код

public class MyComboModel extends DefaultComboBoxModel{
    private Vector<SomeClazz> data = new Vector<SomeClazz>();
    private SomeClazz sel = null;
    public MyComboModel(){
        
    }
    @Override
    public void setSelectedItem(Object anItem){
        if (data.contains(anItem)){
            sel = (SomeClazz)anItem;
        }
    }
    @Override
    public Object getSelectedItem(){
        return sel;
    }
    public void addElement(Object anObject){
        data.add((SomeClazz)anObject);
        this.fireContentsChanged(anObject, 0, data.size()-1);
    }
    public void removeElement(Object anObject){
        data.remove(anObject);
        this.fireContentsChanged(anObject, 0, data.size()-1);
    }
    public void removeAllElements(){
        int len = data.size();
        data = new Vector<SomeClazz>();
        this.fireIntervalRemoved(this, 0, len-1);
    }
    public int getSize(){
        return data.size();
    }
    public Object getElementAt(int index){
        return data.get(index).getC();
    }
    
}


Код

public class SomeClazz {
    private int a;
    private int b;
    public SomeClazz(int a,int b){
        this.a = a;
        this.b = b;
    }
    public int getA(){
        return a;
    }
    public void setA(int v){
        a = v;
    }
    public int getB(){
        return b;
    }
    public void setB(int v){
        b = v;
    }
    public int getC(){
        return b+a;
    }
    public String toString(){
        return ""+a+" "+b;
    }
}

Пилите Шура smile
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.