被 JTable addRow 搞糊涂了

Confused by JTable addRow

关于向 JTable 添加行,我发现这个问题的有用答案 How to add row in JTable?

我对这段代码有点困惑:

DefaultTableModel model = (DefaultTableModel) jtable.getModel();
model.addRow(new Object[]{"Column 1", "Column 2", "Column 3"});

JTable 已经设置了 table 模型。我对第一行代码的理解是,它将 DefaultTableModel model(让我们调用 newmodel)分配给 table 中的 model,而这个 newmodel 不会附加到 table(因为它未使用 setModel() 设置为 table)。

那么 newmodel 执行的 addRow 方法如何向 Jtable 插入新行?

因为现在 model 指的是模型 已经 链接到 table,您将通过 (DefaultTableModel) jtable.getModel() 获得该模型。它已经存在,您不需要显式地为 table 分配一个(如果您按照链接问题所说的进行操作,您是在构造函数中完成的)。

您不是在替换它,而是在现有的基础上进行操作。而且您不需要将其重新设置为 table,因为您从未取消设置它。您只是在处理模型本身。