java JTable仅显示1行
我试图在JTable
(两列)中显示结果集的一部分,但只能看到一行。
JTable
位于现有GUI中,结果集传递给GUI类中的方法。
当我做一个Vector size()
时,它返回一个。
这告诉我列表中只有一个条目。我应该看到4个条目,我看到的条目是我期望的最后一个条目
请参见以下方法: 任何帮助都将不胜感激
public static void getResultSet(ResultSet resultSet) throws SQLException {
ResultSetMetaData metaData = resultSet.getMetaData();
//JTable name is resultsTable includes Scrollpane
// names of columns
Vector<String> columnNames = new Vector<String>();
int columnCount = 2;
for (int column = 1; column <= columnCount; column++) {
columnNames.add(metaData.getColumnName(column));
System.out.println("ColumnNames "+columnNames );
}
// data from the table
// Vector<Vector<Object>> data = new Vector<Vector<Object>>();
Vector<Vector<String>> data = new Vector<Vector<String>>();
while (resultSet.next()) {
Vector<String> vector = new Vector<String>();
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
vector.add(resultSet.getString(columnIndex));
}
data.add(vector);
System.out.println("Vector Value = "+ data);
System.out.println("Vector Size =" + data.size()); //Returning 1 - Should see 4 entries
DefaultTableModel datamodel = new DefaultTableModel(data,columnNames);
resultsTable.setModel(datamodel);
}
# 1 楼答案
每次迭代都要创建一个新的
DefaultTableModel
。不要那样做把上面的拿出来。相反,首先设置模型。然后就在循环中
.addRow(row)
DefaultTableModel(columnNames, 0)
的构造函数,其中0
是初始行数。因此,您所需要做的就是在while(rs.next())
中逐个动态添加行。对于Vector
中获得的每一行数据,只需datamodal.addRow(vector)
更新
就像我说的,我不知道你做错了什么,但我的代码没有问题。这是一个测试程序