作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这很晦涩,但由于某种原因,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);
}
}
}
最佳答案
我认为这没有真正的理由。
也许他们想要额外的安全性,以防监听器在事件被触发时(即我们仍在迭代监听器列表时)从监听器列表中删除自己。
>尽管这并不是真正必要的,因为listenerList是写时复制的......
关于java - 为什么 AbstractTableModel 上的 fireTableChanged() 从最后到第一个通知监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9523152/
我们在 JTable 中有相当复杂的模型。在新的开发中,我注意到当我为单个单元格调用 fireTableChanged(...) 时,GUI 不会刷新。 所以,我的问题是: 我应该在 TableMod
这很晦涩,但由于某种原因,AbstractTableModel 中的通知是从后到先的,导致我的代码中出现错误。我可以修复它,但我想知道是否有人知道为什么通知以这种方式完成? public void f
我是一名优秀的程序员,十分优秀!