0

我是想学习 Java 的 .net C# 程序员。我可以连接数据库,使用 JDBC 获取和写入数据。但是如何填充 JComboBox 并设置其 DisplayMember“PersonelName”和 ValueMember“PersonelID”?

在 .NET 中有相关的属性,如 DisplayMember、DataSource、ValueMember,我可以用 displaymember 显示人员的姓名,当我写入数据时,我可以从 valuemember 属性中了解人员的 id。但是在 Java 中没有这样的属性。如何在 Java 的 JCombobox 中获取 PersonelID 并显示 Personel Name?

有人能给我举个例子吗?

4

2 回答 2

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() 方法。value 成员将是存储在 DefaultComboBoxModel 向量中的实际对象,在本例中为 Personel 实例。

我建议您查看ComboBoxModelDefaultComboBoxModel的 API 文档。

于 2010-01-24T23:32:27.073 回答
0

如何实际上必须显示与 Personell 不同的值的组合框?

假设一个组合框会显示personelId,另一个personName?

于 2010-12-08T09:04:05.897 回答