我正在研究Eclipse中的Java应用程序,它将数据从MySQL数据库中提取出来。我正在填充一个包含数据的组合框。到目前为止,我可以获得要显示的字段的值,但我无法弄清楚如何存储数据库行的唯一ID值。我发现的一个建议是创建一个可以存储显示值和id值的自定义类。但是,这似乎不适用于Eclipse小部件组合对象。这就是我所拥有的
import org.eclipse.swt.widgets.Combo;
class myClass {
public static void createCombo(ResultSet rs) {
Combo c = new Combo();
while(rs.next()) {
int id = rs.getInt("id");
int display = rs.getString("display");
comboitem ci = new comboitem(id,display);
c.add(ci);
}
}
}
class comboitem {
private int _id;
private String _display;
public comboitem(int id, String display) {
this._id = id;
this._display = display;
}
public int getID(){
return _id;
}
public String toString(){
return _display;
}
}
c.add(ci)的上述错误。它期待一个字符串,而不是一个对象。有没有办法做到这一点?
答案 0 :(得分:0)
不知道但是,无论如何,我一直认为这是一个糟糕的举动。 创建一个comboitems的集合/列表,从comboitem.display填充该小部件。 组合中的索引是集合中的索引。 意味着您可以在没有UI或简单模拟的情况下对大量事物进行单元测试,并且可以使您远离数据模型中的桌面特定实现。
答案 1 :(得分:0)
组合小部件显示一个String的数组,因此如果要同时显示这两个值,只需将它们连接起来。我不确定你的最终目标是什么。如果要根据组合选择选择合适的组合项,则将组合项存储在Map中,并使用组合值作为键。
另一种方法是使用jface ComboViewer,它允许您设置复杂对象的输入,提供标签提供程序以及围绕Combo小部件的更复杂的控件。
您还应该查找有关java编码约定的一些信息,而不是直接从UI访问您的数据库,除非这是一个非常简单的应用程序。
您可以找到有关使用大多数SWT小部件here的一些示例。