我有一个JTable,它在进行某些搜索时被填充。我试图添加一个TableModelListener,但是每更新一行/每列都会调用一次。

但是,无论插入多少行,我都希望在更新表时仅调用一次侦听器。

最佳答案

TableModelListenerJTable所有事件的插孔,包括插入,更新,删除以及全部事件。您需要检查TableModelEvent并使用属性来确定触发了哪种类型的事件。

从查看TableModelEventAbstractTableModel的源代码来看,当tableDataChanged等于TableModelEvent#getType并且TableModelEvent.UPDATE等于TabelModelEvent#geColumn时,似乎可以识别TableModelEvent.ALL_COLUMNS事件。

08-05 13:11