我有一个JTable,它会在一些搜索中填充。我尝试添加一个TableModelListener,但是为每个更新的行/列调用它。
但是我希望在更新表时只调用一次监听器,无论插入多少行。
答案 0 :(得分:1)
TableModelListener
是JTable
所有事件的插孔,插入,更新,删除,整个批次。您需要检查TableModelEvent
并使用属性来确定触发了什么类型的事件。
通过查看TableModelEvent
和AbstractTableModel
的源代码,当tableDataChanged
等于{{1}时,似乎可以识别TableModelEvent#getType
事件}和TableModelEvent.UPDATE
等于TabelModelEvent#geColumn
答案 1 :(得分:0)
我有一个JTable,可以在某些搜索中填充
搜索意味着一个逻辑代码块,它一次找到要插入表中的数据行。
但是我希望在更新表时只调用一次侦听器,无论插入多少行。
如果使用addRow(...)方法,则会为每一行生成一个事件。如果你不喜欢这个,那么不要一次添加一行。
而是创建要添加的行列表,然后在TableModel中创建insertRows(...)
方法。这种方法只会生成一个事件。
例如,查看Row Table Model中找到的insertRows(...)
方法。您需要向TableModel添加这样的方法。