You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新JTable以显示新DefaultTableModel中的数据?

问题根源

你对tblmodelMenu变量重新赋值的操作,仅修改了这个变量指向的对象,没有更新JTable实例内部持有的表格模型引用,表格依然绑定的是初始化时的旧模型,所以不会显示新数据。


解决方案1:直接更新JTable绑定的模型

修改updateTable方法,调用JTable的setModel()方法将新模型绑定到表格上:

void updateTable(Object[][] data, String[] columnHeadings) {
    // 新建模型后直接设置给表格
    tblMenu.setModel(new DefaultTableModel(data, columnHeadings));
    // 如果需要继续通过tblmodelMenu变量操作模型,同步更新变量指向
    tblmodelMenu = (DefaultTableModel) tblMenu.getModel();
}

解决方案2:复用原有模型,避免新建对象

如果不需要完全重置模型结构,也可以直接清空原有模型的内容和列,再添加新数据,不用新建模型实例:

void updateTable(Object[][] data, String[] columnHeadings) {
    // 清空原有数据和列
    tblmodelMenu.setRowCount(0);
    tblmodelMenu.setColumnCount(0);
    // 重新设置列
    for (String heading : columnHeadings) {
        tblmodelMenu.addColumn(heading);
    }
    // 添加新行数据
    for (Object[] row : data) {
        tblmodelMenu.addRow(row);
    }
}

两种方案都能触发表格自动刷新,不需要额外调用重绘方法。


内容的提问来源于stack exchange,提问作者Nate Macdonald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:45:01