Mengisi JTable daripada ResultSet
Apabila cuba mengisi JTable daripada ResultSet menggunakan kod yang anda sediakan, anda mungkin menghadapi ralat "java. lang.IllegalStateException: SQLite JDBC: keadaan dalaman tidak konsisten." Untuk menangani perkara ini dan memudahkan proses, pertimbangkan untuk menggunakan kaedah yang lebih mudah.
Contoh berikut menunjukkan cara untuk membina model daripada contoh 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)); }
Kaedah "buildTableModel" ditakrifkan sebagai:
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); }
Atas ialah kandungan terperinci Bagaimana untuk Mengisi JTable dari ResultSet di Java Tanpa IllegalStateException?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!