首頁 >Java >java教程 >如何在 Java 中從 ResultSet 填入 JTable 而不會出現 IllegalStateException?

如何在 Java 中從 ResultSet 填入 JTable 而不會出現 IllegalStateException?

Susan Sarandon
Susan Sarandon原創
2024-12-27 12:12:09168瀏覽

How to Populate a JTable from a ResultSet in Java Without an IllegalStateException?

從ResultSet 填入JTable

嘗試使用您提供的程式碼從ResultSet 填入JTable 時,您可能會遇到錯誤「java.util .JTable」。 lang.IllegalStateException:SQLite JDBC:內部狀態不一致。 」為了解決這個問題並簡化流程,請考慮採用更簡單的方法。

以下範例示範了從ResultSet 實例建構模型的方法:

public static void main(String[] args) throws Exception {
    // Obtain the Connection
    
    ResultSet rs = stmt.executeQuery("select * from product_info");

    // Create and display the table
    JTable table = new JTable(buildTableModel(rs));

    // Close the Connection

    JOptionPane.showMessageDialog(null, new JScrollPane(table));

}

「buildTableModel」方法定義為:

public static DefaultTableModel buildTableModel(ResultSet rs)
        throws SQLException {

    ResultSetMetaData metaData = rs.getMetaData();

    // Column names
    Vector<String> columnNames = new Vector<String>();
    int columnCount = metaData.getColumnCount();
    for (int column = 1; column <= columnCount; column++) {
        columnNames.add(metaData.getColumnName(column));
    }

    // Table data
    Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    while (rs.next()) {
        Vector<Object> vector = new Vector<Object>();
        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
            vector.add(rs.getObject(columnIndex));
        }
        data.add(vector);
    }

    return new DefaultTableModel(data, columnNames);

}

以上是如何在 Java 中從 ResultSet 填入 JTable 而不會出現 IllegalStateException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn