0

我正在尝试向 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);

    }
}

此外,如果我尝试添加 listmodelprivate void jButton3ActionPerformed(java.awt.event.ActionEvent evt)但使用定义的字符串,它可以工作,但我需要将它插入此方法中,以便我可以从 MySQL 获取数据。

4

1 回答 1

1

正如所指出的,您正在ListModel为结果集中的每条记录重新实例化并将其设置为 JList,这意味着您将看到的唯一内容是结果集中的最后一条记录。相反,您应该这样做:

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);

}
于 2013-03-12T16:12:13.220 回答