监听器在JTable中添加/删除行

时间:2013-03-21 11:47:01

标签: java swing jtable

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

2 个答案:

答案 0 :(得分:13)

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

您可以在TableModelListener

上注册TableModel
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
            }
        }
    });

答案 1 :(得分:2)

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

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

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

例如:

theTable.getModel().addTableModelListner(yourTableListener);

其中yourTableListener是实现TableModelListener接口的类的实例。