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