私のクエリから返されたフィールド名に基づいてJTable列の聞き手を作成する必要があるこのコードがあります。何らかの理由で私のコードが動作していない、私は非常にJavaに新しいと私は研究を行っているが、私の問題がどこにあるかを見つけることができないようです。どんな助けでも大歓迎です。JTableにヘッダーとして列名を取得できません
public void initTable(){
try {
DefaultTableModel tblModel = new DefaultTableModel()
{
@Override
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tblMain.setModel(tblModel);
tblMain.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//tblMain.getTableHeader().setReorderingAllowed(false);
Connection dbconn = dbConn();
Statement stmt = dbconn.createStatement();
String qry = "SELECT * FROM Services";
ResultSet rs = stmt.executeQuery(qry);
int numCols = rs.getMetaData().getColumnCount();
System.out.println("Num Cols: " + numCols);
for (int col = 1; col <= numCols; col++){
tblModel.addColumn(rs.getMetaData().getColumnLabel(col));
//tblModel.addColumn("Tmp");
System.out.println(col + " - " + rs.getMetaData().getColumnLabel(col));
}
int row = 0;
while (rs != null && rs.next()){
tblModel.addRow(new Object[0]);
tblModel.setValueAt(rs.getString("ServiceID"), row, 0);
tblModel.setValueAt(rs.getString("Institution"), row, 1);
tblModel.setValueAt(rs.getString("Doctor"), row, 2);
tblModel.setValueAt(rs.getString("Street"), row, 3);
tblModel.setValueAt(rs.getString("City"), row, 4);
tblModel.setValueAt(rs.getString("State"), row, 5);
tblModel.setValueAt(rs.getString("ZipCode"), row, 6);
tblModel.setValueAt(rs.getDate("Date"), row, 7);
tblModel.setValueAt(rs.getDouble("Cost"), row, 8);
tblModel.setValueAt(rs.getInt("ServiceTypeID"), row, 9);
tblModel.setValueAt(rs.getString("Comments"), row, 10);
row++;
}
rs.close();
}
catch (Exception e){
e.printStackTrace();
}
}
この質問を参照してください:適切な[JTableは列ヘッダーが表示されません](http://stackoverflow.com/questions/2320812/jtable-wont-show-column-headers?rq=1) –
投稿問題を示す[mcve]。問題が解決するまでは、どのコードが問題を引き起こしているのか分かりません。上記の提案は、JTableを表示するためにJScrollPaneを使用していないことを推測しています。したがって、問題は投稿したコードとはまったく関係ありません。この提案が助けにならない場合は、ポストする 'MCVE'は、ハードコードされたデータでなければなりません。つまり、データベースにアクセスできないため、データベースを使用して問題を示すことはできません。 – camickr