Java Swing TableModel fireTableRowsInserted on EDT

时间:2010-04-19 12:30:26

标签: java swing

我有一个从后台运行线程填充的TableModel。我在插入数据时调用fireTableRowsInserted,这不在EDT上。

我的问题是,我是否需要为fireTableRowsInserted使用invokeLater?

换句话说,以下是正确的:

public void putData(TableRow row) {
    // we are not on the EDT here...
    rows.add(row);
    fireTableRowsInserted(rows.size()-1, rows.size()-1);
}

1 个答案:

答案 0 :(得分:2)

好吧,因为这个事件可能触发表重绘,它应该在EDT中,是的。但是你可以依靠SwingUtilities.invokeLater只在EDT中调用相关部分。