我是想要学习Java的.net C#程序员。我可以连接DB,使用JDBC获取和写入数据。但是如何填写JComboBox并将其DisplayMember设置为“PersonelName”和ValueMember“PersonelID”?
在.NET中有相关的属性,如DisplayMember,DataSource,ValueMember,我可以用displaymember显示personel的名字,当我写入数据时,我可以从valuemember属性中学习人员的id。但在Java中没有这样的属性。如何在Java中获取PersonelID并在JCombobox中显示Personel Name?
有人会举个例子吗?
答案 0 :(得分:2)
JComboBox构造函数可以将ComboBoxModel作为参数。 DefaultComboBoxModel是ComboBoxModel接口的具体实现。
所以,如果你有一个Personel类:
class Personel{
String personelName;
int personelId;
//getters, setters
//This will be your display member
@Override
public String toString(){
return this.personelName;
}
}
假设您通过JDBC获得了所有人员并将其存储在新的Vector中,您可以这样做:
DefaultComboBoxModel comboModel = new DefaultComboBoxModel(personel);
JComboBox myCombo = new JComboBox(comboModel);
在运行时,您可以使用getModel和setModel来访问JComboBox模型。显示成员将是Personel的toString()方法。值成员将是存储在DefaultComboBoxModel向量中的实际对象,在本例中是Personel实例。
我建议您查看ComboBoxModel和DefaultComboBoxModel的API文档。
答案 1 :(得分:0)
如何真正拥有可以显示Personell不同值的组合框?
假设一个组合框会显示personelId,另一个个人名称?