私は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;
}
私は私のコンソールで取得出力は次のとおりです。{列= [ユーザ名、パスワード、自由]、件のデータ= HEJ、[[HEJ、1 [Brugernavn、Password、1]、[Brugernavn1、Password、0]、[test1、test2、1]、[、、1]]}私にはうまく見えますが、 1つの配列 - 新しい行ではありません。
ありがとうございました!これは列の名前を追加します。しかし私は何もデータを追加しないのですか?なぜなのかご存知ですか? :) –
新しいDefaultTableModelをJTableに追加する必要があるため(モデルを作成するための新しいループ) – mKorbel
@PatrickHansen add Sytem.out.println(rs.getObject(i));より前にはsingleRow.addELement(rs.getObject(i));データベースからデータをうまく取得するかどうかを確認します。そうでない場合は、クエリとデータベースを確認する必要があります。 – trd3v3lop