我想在netbeans 7.1中添加一个从mysql数据库填充的组合框。我做了如下简单的实现,但这种编码不起作用。
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/combo","root","root123");
Statement stmnt = (Statement) con.createStatement();
String SQL = "SELECT * FROM items";
ResultSet rs = stmnt.executeQuery(SQL);
while(rs.next())
{
jComboBox1.addItem(rs.getString("itemcode"));
}
}
...
}
我该如何解决这个问题。
假设您的组合框由String项组成。您要创建一个组合框,它将在显示中使用这些字符串项。
String items[] = {...};
组合框声明示例可以是这样的:
JComboBox comboBox = new JComboBox(items);
因此,通过来自数据库的数据填充items
数组可以解决您的问题,即组合框与数据库无关,但字符串项与数据库无关。
int index = 0;
ResultSet rs = statement.executeQuery(SQL);
while(rs.next())
items[index] = rs.getString("itemcode");
但是,由于您不知道将从数据库中检索多少项,因此可以使用arraylist而不是数组,以便可以动态地将项添加到列表中。
尝试{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql:///dbname", "username", "password");
Statement st=con.createStatement();
Resultset r=st.executeQuary("SELECT * FROM table name");
while(r.next()){
Vector v=new Vector();
ComboBox1.setModel(new DefaultComboBoxModel(v));
}
} catch (Exception e) {
e.printStackTrace();
}