向Jtable添加一个监听器,在填充表时只调用一次

时间:2015-08-04 07:04:36

标签: java swing

我有一个JTable,它会在一些搜索中填充。我尝试添加一个TableModelListener,但是为每个更新的行/列调用它。

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

2 个答案:

答案 0 :(得分:1)

TableModelListenerJTable所有事件的插孔,插入,更新,删除,整个批次。您需要检查TableModelEvent并使用属性来确定触发了什么类型的事件。

通过查看TableModelEventAbstractTableModel的源代码,当tableDataChanged等于{{1}时,似乎可以识别TableModelEvent#getType事件}和TableModelEvent.UPDATE等于TabelModelEvent#geColumn

答案 1 :(得分:0)

  

我有一个JTable,可以在某些搜索中填充

搜索意味着一个逻辑代码块,它一次找到要插入表中的数据行。

  

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

如果使用addRow(...)方法,则会为每一行生成一个事件。如果你不喜欢这个,那么不要一次添加一行。

而是创建要添加的行列表,然后在TableModel中创建insertRows(...)方法。这种方法只会生成一个事件。

例如,查看Row Table Model中找到的insertRows(...)方法。您需要向TableModel添加这样的方法。