【发布时间】:2014-03-19 22:59:53
【问题描述】:
我创建了一个 GUI,并有一个位于外部的数据库,我从中获取数据。我正在使用 NetBeans 中的 GUI 构建器来执行此操作。有谁知道用来自数据库的值填充 jComboBox 的简单方法?当我运行该项目时,没有错误,但组合框仍然为空。
这是设置带有折扣名称的组合框的代码:
public void setDiscountNames(String type, JComboBox cbox) {
cbox.removeAllItems();
ArrayList<Discount> names = new ArrayList<Discount>();
try {
Connection con = null;
PreparedStatement stmt = null;
ResultSet rs = null;
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/abpp034?user=abpp034&password=120001772");
stmt = con.prepareStatement("SELECT Name FROM Discount WHERE Type = \"" + type + "\"");
rs = stmt.executeQuery();
while(rs.next()){
cbox.addItem(rs.getString("Name"));
}
} catch (SQLException ex) {
Logger.getLogger(Model.class.getName()).log(Level.SEVERE, null, ex);
}
}
它位于与 jComboBox 对象不同的类中。这个类称为模型。
这里是我在一个名为 DiscountGUIView 的表单中调用 setDiscountNames 方法的地方:
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt){
model.setDiscountNames("Fixed", jComboBox1);
}
好的(更新)查询会打印结果:
run:
旅行标准 固定标准 构建成功(总时间:1 秒)
【问题讨论】:
-
您确定查询正在返回结果吗?
-
是的,我很确定这是因为我在我的数据库所在的服务器上运行了这个 sql 查询,它成功地检索到了结果。
-
但是你的程序呢?它是检索结果吗?尝试在
rs.nextwhile-loop中添加System.out.println语句... -
在尝试将项目动态添加到组合框时使用
MutableComboBoxModel.addElement -
好的,所以我做了 system.out.print,这是我收到的错误:
标签: java netbeans jdbc jcombobox