在我的UI中,我使用带有TableModel的JTable。在实现的Observer接口的更新方法中,我调用了重绘方法。删除操作立即发生,而在添加行时它不会更新,但它是切换标签时更新(调用另一种方法而不是重新绘制)
这是更新方法的代码:
public void update(Observable o, Object arg) {
((MyTableModel)table_.getModel()).addTableRow(row);
//addTable(row) adds the row to the dataVector that populates the JTable
//the dataVector is updated with added row
table_.repaint();
}
我想知道为什么JTable没有得到更新 请注意 - >数据Vector具有所需的行,包括添加的行
答案 0 :(得分:4)
您的addTableRow
方法还应触发一个事件,指示已添加该行以提醒JTable
此更改。然后就不需要repaint
来电。
例如,查看addRow
的{{1}}方法的实现:
DefaultTableModel
您可以清楚地看到事件被触发,并且不需要重新绘制。这在JTable
tutorial