向JList添加行

时间:2013-03-12 13:57:58

标签: java mysql row jlist

我正在尝试向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获取数据。

1 个答案:

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

}