要将对象放入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中
有合适的方法吗?
答案 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);
}
}
}
}