我正在制作一个应用程序,让员工更容易归还丢失的行李。
我在一个记录行李的屏幕上工作。 状态ComboBox填充了数据库中的数据以及CustomerID组合框。 屏幕: http://gyazo.com/d81c7c2377c79eb2b42d6f101fb8d5f5
现在,ComboBox获取一个SQL查询,并显示一个名字。但客户也有一个customerID。现在我有一个方法,它设置变量customerId的值,用:
lug.setCustomerID(String.valueOf(CustomerID.getSelectedItem()));
然后它将其价值定为' Khoa'。
如何在组合框中显示名称,但是获取customerID的INT值?
答案 0 :(得分:3)
您可以添加一个同时包含ID和String的对象,而不仅仅是向ComboBox添加字符串。 您需要覆盖从中创建客户对象的类的toString()函数。
public class Customer {
private String name;
private int id;
public Customer(String label, int identifier) {
name = label;
id = identifier;
}
public getId() { return id; }
@Overrider public String toString() { return name; }
}
您可以在该类中使用对象
lug.setCustomerID(CustomerID.getSelectedItem().getId());
答案 1 :(得分:0)
您应该使用2个字段将数据包装在简单的bean(例如Customer)中:int id; String firstName和toString必须返回firstName。
将组合框声明为JComboBox<Customer>
后。
结果看起来像lug.setCustomerID(CustomerID.getSelectedItem().getId());