Хранить объект внутри jcompobox и показывать компонент String только в Java - PullRequest
0 голосов
/ 29 июня 2019

Чтобы поместить объект в jcombobox, мы делаем так:

  while(result.next()){
        int id=rs.getInt("id");
        String name=rs.getString("name");
        Object[] itemData = new Object[] {id, name};
        jComboBox1.addItem(itemData);
    }

Мне нужен jcombobox, чтобы показать только itemData.name и сохранить весь объект внутри jcombobox
Есть липодходящий способ?

1 Ответ

0 голосов
/ 29 июня 2019

Вы можете создать собственный customComboBox.
Сохраните там то, что вы когда-либо хотели, и отобразите то же самое.

Например:

public class CustomCB {
JFrame f;    
CustomCB(){    
    f=new JFrame("Custom ComboBox");    

    List<MyObj> l = new ArrayList<>();
    l.add(new MyObj("value1",1));
    l.add(new MyObj("value2",2));
    l.add(new MyObj("value3",3));

    MyCB cb=new MyCB(l); 

    for(MyObj obj: cb.l)
    {
        System.out.println(obj.s+":"+obj.i);
    }

    cb.setBounds(50, 50,90,20);    
    f.add(cb); 
    f.setLayout(null);    
    f.setSize(400,500);    
    f.setVisible(true);         
}  

class MyObj
    {
        String s;
        int i;
        MyObj(String s, int i)
        {
            this.s=s;
            this.i=i;
        }
    }

class MyCB extends JComboBox<String>
{
    List<MyObj> l;
    MyCB(List<MyObj> l)
    {
        super();
        this.l = l;
        for(MyObj obj:l)
        {
            this.addItem(obj.s);
        }
    }
} 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...