Java에서 JTable로 데이터베이스의 일부 데이터를로드하려고합니다 (Oracle의 SQL Developer 사용). 그런 다음JTable은 행 수가 두 개 이상 있음에도 불구하고 단 하나의 행만 표시합니다.
public Vector load() {
try {
Vector tableData = new Vector();
Conn con = new Conn();
con.openConn();
con.statement = con.dbConn.createStatement();
ResultSet rs = con.statement.executeQuery("Select * from Jobs");
while (rs.next()) {
Vector<Object> row = new Vector<Object>();
row.add(rs.getString("Job_ID"));
row.add(rs.getString("Job_Title"));
row.add(rs.getString("Parent_Job_ID_1"));
row.add(rs.getString("Parent_Job_ID_2"));
row.add(rs.getString("Description"));
tableData.add(row);
}
con.closeConn();
return tableData;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
내가 편집기로했습니다 JTable의로를 채우는 시도 : 나는 벡터의 벡터의 데이터베이스에서 데이터를 넣어,이 내가라는 클래스 DBJobs에 넣어 내 부하 방법 다른 클래스에서 :
private void populateJobsTable() {
Vector<String> tableHeader = new Vector<String>();
tableHeader.add("Job ID");
tableHeader.add("Job Name");
tableHeader.add("Parent Job ID 1");
tableHeader.add("Parent Job ID 2");
tableHeader.add("Description");
Vector tableData = dbJobs.load();
tblJobs.setModel(new DefaultTableModel(tableData, tableHeader));
}
그러나 내가 볼 수있는 것은 테이블의 1 행 데이터입니다. Vector에있는 데이터의 수와 테이블에있는 행 수를 모두 인쇄 해 보았습니다. 데이터베이스에있는 데이터의 양은 모두 49입니다. 그렇다면 왜 내 테이블에 1 개의 데이터 만 표시됩니까?
편집 : 모두의
tblJobs = new javax.swing.JTable();
tblJobs.setFont(new java.awt.Font("Tempus Sans ITC", 0, 14)); // NOI18N
tblJobs.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null}
},
new String [] {
"Job Name"
}
) {
Class[] types = new Class [] {
java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tblJobs.setPreferredSize(new java.awt.Dimension(225, 16));
jScrollPane5.setViewportView(tblJobs);
if (tblJobs.getColumnModel().getColumnCount() > 0) {
tblJobs.getColumnModel().getColumn(0).setResizable(false);
}
테이블은 어떻게 표시됩니까? 더미 데이터를 데이터베이스에서로드하는 대신 사용 해봤습니까? – MadProgrammer
편집기에서 테이블을 만들었으므로 코드에 setVisible (true) 메서드가 없습니다. 예, 더미 데이터를 사용하여 시도했지만 여전히 1 행만 표시합니다. – Grandevox
[Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve) – MadProgrammer