2013-03-21 35 views

回答

10

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

您可以在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 
      } 
     } 
    }); 
+0

谢谢,它的工作 – Dinesh 2013-03-21 14:50:43

0

是注册TableModelListener,每当行添加或删除TableModelEvent被炒鱿鱼。

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

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

例如:

theTable.getModel().addTableModelListner(yourTableListener); 

哪里yourTableListener是实现TableModelListener接口的类的实例。

+0

感谢@Thorn的评论 – Dinesh 2013-03-21 13:10:43