【发布时间】:2017-05-03 03:23:23
【问题描述】:
我正在尝试将向量中的项目添加到我的 JTable 中,但我似乎无法正确处理。 JTable 仅显示我数据库中的第一行值,并且它们都同时显示在同一列中。将单个列值插入表中时如何分隔它们?以及如何一次将多行值放入表中?
connect = DriverManager.getConnection(url,user,pass);
System.out.println("Connected to database.\n");
statement = connect.createStatement();
ResultSet result = statement.executeQuery("SELECT * FROM aboyer_tickets_1");
//get values for table
System.out.println("Adding data to table model...\n");
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while (result.next()) {//model
Vector<Object> row = new Vector<Object>();//row
for (int columnIndex = 1; columnIndex <= 6; columnIndex++) {
row.add(result.getObject(columnIndex));
}
System.out.println(row + "\n");
data.add(row);
model.addRow(data);
}
System.out.println("Done.\n");
控制台输出: 已连接到数据库。
Adding data to table model...
[1, 531961, user1, M, PH 109 Computer wont turn on, O]
[2, 502492, user1, H, wifi connectivity issue, O]
[3, 469432, admin, L, mouse replacement - MSV, O]
[4, 140627, user1, H, Lost login for WH 121 computer, O]
Done.
表格中的输出(尽我所能):
1 | 2 | 3 | 4 | 5 | 6
[1, 531961, user1, M, PH.., O]
[1, 531961, user1, M, PH.., O]
[1, 531961, user1, M, PH.., O]
[1, 531961, user1, M, PH.., O]
【问题讨论】:
-
尝试使用
Swingworker,因为加载数据库是一项长期任务,EDT 会有问题 -
model.addRow(data)应该是model.addRow(row),否则你将添加一个带有Vector作为数据组件的列
标签: java mysql swing vector jtable