从 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中文网其他相关文章!