ResultSet에서 JTable 채우기
제공된 코드를 사용하여 ResultSet에서 JTable을 채우려고 하면 "java. 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); }
위 내용은 IllegalStateException 없이 Java의 ResultSet에서 JTable을 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!