0
我有一個JTable我想填充使用DefaultTableModel,不幸的是我的輸出是作爲數組而不是我想要的新行。請參閱下面的代碼,並詢問是否需要進一步解釋! :)Java DefaultDataTable動態值
dataTable.setModel(new javax.swing.table.DefaultTableModel(new Object [][] {
DatabaseInteraction.getCityInfo("").get("datas").toArray()
},
DatabaseInteraction.getCityInfo("").get("columns").toArray()));
數據庫交互的功能在這裏:
public static Map<String,List<String>> getCityInfo(String query)
{
if(query.isEmpty()){
query = "SELECT * FROM "+ database+ "." +table;
}
try {
Statement stmt = getConn().createStatement();
ResultSet rs;
rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
//Get Column names
List<String> cNames = new ArrayList();
List<Object> results = new ArrayList<Object>();
for (int i = 1; i <= rsmd.getColumnCount(); i++){
cNames.add(rsmd.getColumnName(i));
}
//Get Data
while (rs.next()) {
List<String> tempResults = new ArrayList();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
tempResults.add(rs.getString(i));
if(i == rsmd.getColumnCount()){
results.add(tempResults);
}
}
}
HashMap map =new HashMap();
map.put("columns",cNames);
map.put("datas",results);
System.out.println(map);
return map;
}
輸出我在控制檯得到的是:{列= [用戶名,密碼,免費],DATAS = [[HEJ,HEJ,1 ],[Brugernavn,Password,1],[Brugernavn1,Password,0],[test1,test2,1],[,,1]]}對我來說看起來很好,但正如我之前說的,它只是將它追加爲數組而不是一個數組 - 新的一行。
感謝您的幫助!這增加了列名稱就好!但我不會添加任何數據?你知道爲什麼嗎? :) –
因爲需要添加一個新的DefaultTableModel到JTable(一個新的循環來創建一個模型) – mKorbel
@PatrickHansen add Sytem.out.println(rs.getObject(i));在singleRow.addELement(rs.getObject(i))之前;並檢查它是否從數據庫中獲得數據。如果沒有,那麼你應該檢查你的查詢和數據庫。 – trd3v3lop