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

JTable无法显示ArrayList转换的二维数组数据求助

问题解决:JTable无法展示从ArrayList转换的二维数组内容

问题分析

你代码里的多层嵌套for循环完全是冗余的——虽然逻辑上它确实会给每一行的5个列赋值,但这种写法不仅可读性极差,还可能让你在调试时忽略其他潜在问题。不过核心问题大概率不在循环逻辑本身,而是要结合以下几点排查:

修正方案

首先把冗余的循环改成清晰的单层循环,避免不必要的嵌套:

Object[][] data = new Object[listOfCourses.size()][5];
for (int i = 0; i < listOfCourses.size(); i++) {
    Course course = listOfCourses.get(i); // 先取出当前课程,简化代码
    data[i][0] = yearInWord(course.getYear());
    data[i][1] = termInWord(course.getTerm());
    data[i][2] = course.getCourseCode();
    data[i][3] = course.getCourseName();
    data[i][4] = course.getUnits();
}

额外排查点

  • 确认组件初始化顺序:确保调用courseTable.setModel(...)的代码是在UI组件(比如initComponents())初始化完成之后执行的——如果在UI组件还没创建时就设置model,会导致表格无法渲染数据。
  • 校验数据有效性:可以在设置model前加一行打印,确认每一行数据都不为空(调试用):
    for (Object[] row : data) {
        System.out.println(Arrays.toString(row));
    }
    
  • 检查辅助方法返回值:确认yearInWord和termInWord方法没有返回null——如果这两个方法返回空字符串或null,表格对应列会显示空白,但不会导致整行不显示。

测试验证

用修正后的代码替换原循环,再结合上面的排查点,应该就能让表格正常显示数据了。

内容的提问来源于stack exchange,提问作者Sheryn C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 04:30:03