前言:
在Swing中JTable是用来展示数据流的重要控件。在静态数据展示时只需调用其构造方法填入数据即可,但缺点数据不可改变。动态数据的展示可以采用向量(Vector
),但过程过于复杂、冗余,对于初学者而言十分不友好,这里有一种方式,无论是ResultSet
还是泛型集合均可使用该方式简单快速完成业务需求。
举例:
泛型集合为数据源进行动态更新表格数据
// 设置要展示数据的表格头
String[] col = { "id", "Name", "Age", "Phone" };
// 将表格头放入DefaultTableModel的构造方法里面
DefaultTableModel defaultTableModel = new DefaultTableModel(col, 0);
// 迭代sList该泛型集合的数据,并将数据放入strRow数组中(每行数据)
for(int i = 0; i < sList.size(); i++){
String strId = sList.get(i);
String strName = sList.get(i);
String strAge = sList.get(i);
String strPhone = sList.get(i);
String[] strRow = {strId, strkName, strSeller, strPhone};
// 添加行数据
defaultTableModel.addRow(stRow);
}
// 设置表格数据模型
table.setModel(defaultTableModel);
说明:这里是以List举例迭代数据,根据具体业务需求选取具体的泛型集合
ResultSet
为数据源进行动态更新表格数据
// 设置要展示数据的表格头
String[] col = { "id", "Name", "Age", "Phone" };
// 将表格头放入DefaultTableModel的构造方法里面
DefaultTableModel defaultTableModel = new DefaultTableModel(col, 0);
// 迭代resultSet该结果集的数据,并将数据放入strRow数组中(每行数据)
while(resultSet.next()){
String strId = resultSet.getString("id");
String strName = resultSet.getString("name");
String strAge = resultSet.getString("age");
String strPhone = resultSet.getString("phone");
String[] strRow = {strId, strkName, strSeller, strPhone};
// 添加行数据
defaultTableModel.addRow(stRow);
}
// 设置表格数据模型
table.setModel(defaultTableModel);