我的问题是我不知道如何用我的derby db 中的一些数据创建一个列表(来自NetBeans的Jlist)
例如:
我有一个表单,可以保存来自"客户"的id、姓名、电话和电子邮件,我想在列表中显示我以前注册的客户的所有姓名,问题是我需要将varchar数据转换为listmodel。我该怎么做?我试过了,但没有成功:
while (rs.next()){
int id_col = rs.getInt("clientID");
String name = rs.getString("clientName");
client_listClients.setText(name);
}
上面写着"找不到.setText 的符号"
使用DefaultListModel
编辑
工作结果!
public void DoConnect( ) {
DefaultListModel model = new DefaultListModel();
client_listClients.setModel(model);
try {
String host = "jdbc:derby://localhost:1527/ANAIA_DB";
String uName = "*****";
String uPass = "*****";
con = DriverManager.getConnection(host, uName, uPass);
stmt = con.createStatement();
String sql = "SELECT * FROM APP.CLIENT";
rs = stmt.executeQuery(sql);
while (rs.next()){
int id_col = rs.getInt("clientID");
String name = rs.getString("clientName");
model.addElement(name);
}
} catch (SQLException err) {
JOptionPane.showMessageDialog(main.this, err.getMessage());
}
}
Thx aloooot@peeskillet
上面写着"找不到符号"。setText"
JList
没有方法setText()
。如果有疑问,请阅读文档
相反,您将希望使用ListModel
。如果您不想创建自己的,可以使用提供的DefaultListModel
实现。这就是方法addElement
。
您首先需要用模型声明您的列表。
DefaultListModel model = new DefaultListModel();
JList client_listClients = new JList(model);
然后您可以使用方法addElement
,它将在所有添加完成后自动更新UI。无需对列表做任何操作。
while (rs.next()){
String name = rs.getString("clientName");
model.addElement(name);
}
您可以在How to use Lists中看到更多信息,并关注创建模型一节