我正在尝试向JList添加一行,但它不会发生。我正在使用Java + MySQL。但是当使用System.out.println()
时,它可以工作。
以下是接收数据的代码:
public void writeResultSet(ResultSet resultSet) throws SQLException {
while (resultSet.next()) {
String student_firstname = resultSet.getString("student_firstname");
String student_middlename = resultSet.getString("student_middlename");
String student_lastname = resultSet.getString("student_lastname");
DefaultListModel listModel = new DefaultListModel();
listModel.addElement("" + student_firstname + " " + student_middlename + " " + student_lastname);
jList1.setModel(listModel);
}
}
另外,如果我尝试在private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)
中添加listmodel但使用已定义的字符串,它可以正常工作,但我需要在此方法中插入它,以便我可以从MySQL获取数据。
答案 0 :(得分:0)
正如所指出的那样,你正在重新实例化ListModel
并将其设置为结果集中每条记录的JList,这意味着你唯一能看到的就是最后一条记录。 resultSet。相反,你应该做这样的事情:
public void writeResultSet(ResultSet resultSet) throws SQLException {
DefaultListModel listModel = new DefaultListModel();
while (resultSet.next()) {
String student_firstname = resultSet.getString("student_firstname");
String student_middlename = resultSet.getString("student_middlename");
String student_lastname = resultSet.getString("student_lastname");
listModel.addElement("" + student_firstname + " " + student_middlename + " " + student_lastname);
}
jList1.setModel(listModel);
}