【发布时间】:2012-03-01 20:02:23
【问题描述】:
这很模糊,但由于某种原因,AbstractTableModel 中的通知是后到先的,导致我的代码出现错误。我可以修复它,但我想知道是否有人知道为什么以这种方式完成通知?
public void fireTableChanged(TableModelEvent e) {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==TableModelListener.class) {
((TableModelListener)listeners[i+1]).tableChanged(e);
}
}
}
【问题讨论】:
-
为什么你需要你的听众按一定的顺序触发?那是一种设计的味道。
-
"last-to-first,导致我的代码中出现错误。" 不,您的代码中的错误是由首先假定顺序引起的。解决这个问题,其余的就变得无关紧要了。
标签: java swing jtable tablemodel event-queue