将对象存储在jcompobox内,仅在Java中显示String组件

时间:2019-06-29 09:30:22

标签: java jcombobox

要将对象放入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 :(得分:0)

您可以创建自己的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);
        }
    }
} 
}