3

从 JTable 添加/删除行后,是否有任何可用的事件会被触发?

4

2 回答 2

14

在表本身上,不,但TableModel负责在模型更改时触发适当的事件。

您可以TableModelListenerTableModel

JTable table = new JTable();
table.getModel().addTableModelListener(new TableModelListener() {

        @Override
        public void tableChanged(TableModelEvent e) {
            if (e.getType()==TableModelEvent.INSERT||e.getType()==TableModelEvent.DELETE) {
                // Do something
            }
        }
    });
于 2013-03-21T12:32:35.547 回答
2

是的,只要添加或删除行,就会触发TableModelEvent 。

您需要创建一个TableModelListener,然后使用addTableModelListener将其添加到您的 TableModel 中。

如果您实现了自己的 TableModel,请确保在添加或删除行之后调用fireTableRowsDeleted(int firstRow, int lastRow)或。fireTableRowsInserted(int firstRow, int lastRow)

例如:

theTable.getModel().addTableModelListner(yourTableListener);

whereyourTableListener是实现 TableModelListener 接口的类的实例。

于 2013-03-21T12:39:40.837 回答