Derby 데이터베이스에서 데이터를 가져 와서 Netbeans GUI 빌더로 만든 jTable을 채우려고했습니다.데이터베이스에서 데이터를 가져온 후 jTable에 아무 것도 표시하지 않음
나는 다음과 같은 코드가 유지 계정 클래스가 :
public static DefaultTableModel buildTableModel() throws SQLException {
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
Vector columns = new Vector();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String stmt = "SELECT * FROM APP.DATAVAULT";
ps = Main.getPreparedStatement(stmt);
rs = ps.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
// names of columns
Vector<String> columnNames = new Vector<String>();
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount; column++) {
columnNames.add(metaData.getColumnName(column));
}
// data of the table
while (rs.next()) {
Vector<Object> vector = new Vector<Object>();
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
} finally {
try {
ps.close();
} catch (Exception e) {
}
try {
rs.close();
} catch (Exception e) {
}
}
DefaultTableModel tableModel = new DefaultTableModel(data, columns);
return tableModel;
}
당신이 두 개의 매개 변수, 데이터 및 열 DefaultTableModel를을 반환 볼 수 있듯이.
내 필드 :
Account acc = new Account();
생성자 :
public SPPMainGUI() throws SQLException {
initComponents();
datavaultjTable.setModel(acc.buildTableModel());
}
내 주요 방법 :
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
new SPPMainGUI().setVisible(true);
} catch (SQLException ex) {
Logger.getLogger(SPPMainGUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
그런 다음 내 GUI 클래스에서 나는 다음이 코드가 populat로 설정되었습니다. datavault 테이블의 모든 데이터를 전자 내 JTable의, 상관없이 사용자가 로그인하지
내 datavault 테이블의 데이터가 있습니다.
그리고 이것은 내 JTable가이 때의 모습입니다 I 내 프로그램을 실행하고 성공적으로 로그인 :
이 그것을 어떻게 보일지이지만, 인구 :
어디에서 코드가 잘못 되나요? 나는 2 주 동안 이것에 난처 해했다.
+1 세부 질문입니다. 모든 질문이 잘 짜여진 것을 기원합니다. – Reimeus