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

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

Susan Sarandon
發布: 2024-12-27 12:12:09
原創
171 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板