2012-08-08 81 views
2

我想激发一个事件,该事件表示给定的列值已全部更改,即列X中的某处,某些值已更改。我如何能做到这一点,因为所有的事件无论是关注单元格,行或整个数据表......在AbstractTableModelJTable - 激活列数据更改事件

回答

5

看,它看起来像构建TableModelEvent明确可能做的伎俩:

model.fireTableChanged(new TableModelEvent(model, 0, lastRow, columnIndex, 
         TableModelEvent.UPDATE)); 

参见对于TableModelEvent的Javadoc:

/** 
* Depending on the parameters used in the constructors, the TableModelevent 
* can be used to specify the following types of changes: <p> 
* 
* <pre> 
* TableModelEvent(source);    // The data, ie. all rows changed 
* TableModelEvent(source, HEADER_ROW); // Structure change, reallocate TableColumns 
* TableModelEvent(source, 1);   // Row 1 changed 
* TableModelEvent(source, 3, 6);  // Rows 3 to 6 inclusive changed 
* TableModelEvent(source, 2, 2, 6);  // Cell at (2, 6) changed 
* TableModelEvent(source, 3, 6, ALL_COLUMNS, INSERT); // Rows (3, 6) were inserted 
* TableModelEvent(source, 3, 6, ALL_COLUMNS, DELETE); // Rows (3, 6) were deleted 
* </pre> 
* 
* It is possible to use other combinations of the parameters, not all of them 
* are meaningful. (...) 
+0

+1你是对的 - 我的评论是错误的:-) – kleopatra 2012-08-08 09:45:22

1

个人而言,我只希望触发一个事件地说,如果它只是指示所需刷新表整个表发生了变化。

+0

你将失去​​表中选定的行。 – 2013-11-05 20:59:18