- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 JList,我想为它提供我自己的 ListModel。我有一个包含条目的 LinkedHashMap。我对 AbstractListModel 进行了子类化。我想要实现的是,每当我从 Map 中删除一个元素时,我希望它能够反射(reflect)在 JList 中(添加或删除元素甚至更新)。
编辑-我尝试执行此操作的场景如下:我有一个 JList 并添加、编辑和删除 JButton。我维护一个包含探测器对象的 map 。当我单击“添加”按钮时,我想向 map 添加一个新的检测器对象,同时我希望 JList 反射(reflect)在新的添加中。编辑和删除也是如此。
这是我到目前为止所做的,但我不知道如何使模型响应更新:
private class DetectorsListModel extends AbstractListModel {
private List<Detector> detectors;
private Map<Long, Detector> detectorsMap;
public DetectorsListModel( Map<Long, Detector> detectorsMap) {
this.detectorsMap = detectorsMap;
detectors = new LinkedList<Detector>();
for ( Long detectorID : detectorsMap.keySet() ) {
detectors.add( detectorsMap.get(detectorID) );
}
}
@Override
public int getSize() {
// TODO Auto-generated method stub
return detectors.size();
}
@Override
public Detector getElementAt(int index) {
// TODO Auto-generated method stub
return detectors.get(index);
}
}
请帮忙!
最佳答案
您应该使用模型并向模型添加值,而不是直接使用新值并向 map 添加新值,模型负责将值添加到底层 map 并触发适当的事件刷新 TableView :
public void add(Detector detector) {
this.detectorsMap.put(detector.getId(), detector);
this.detectors.add(detector);
fireIntervalAdded(detectors.size() - 1, detectors.size() - 1);
}
请注意,在需要时从检测器列表重建新 map 可能会更容易,以避免维护两个并行集合。
关于java - 如何使 AbstractListModel 子类对 Collection 更改使用react?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254167/
我目前有一个 QtAbstractListModel 子类(为清楚起见缩短): class HolidayTask; class HolidayTaskModel: public QAbstractL
我有一个简单的ListModel,它是可过滤的并在JList中使用... 它使用以下代码... public class FilteredListModel extends AbstractListM
我正在尝试从 AbstractListModel 的实现中获取所选项目。我应该使用什么类型的监听器?似乎只有 ListDataListener 类,但似乎没有我正在寻找的功能。 感谢您的帮助! 实现如
JComboBox 从数据库中检索信息。添加数据后该列表应立即更新。 我知道我需要 fireContentsChanged 来更新值。我不确定我应该在方法中做什么。任何指导将不胜感激! class C
我对 Java 比较陌生,尤其是 Swing。我使用 Netbeans 6.8 进行开发。 我有一个使用自定义 AbstractListModel 的 JList。此 AbstractListMode
我有一个 JList,其中每个元素都包含一些特殊数据。所以我已经为 JList 实现了 AbstractListModel。 当列表中有一个或多个元素时,一切都很好。 但是,在以下情况下不起作用: J
我有一个 JList,我想为它提供我自己的 ListModel。我有一个包含条目的 LinkedHashMap。我对 AbstractListModel 进行了子类化。我想要实现的是,每当我从 Map
从如下创建的 AbstractListModel 检索数据时出现问题: warmup1List.setModel(new javax.swing.AbstractListModel() {
情况 下面是一个 Qt 示例,其中包含一个 AbstractListModel 和两个链接到该模型的显示小部件(一个 ListView 和一个 LineEdit) : from PyQt5 impor
我想定义一个 Swing 组合框模型,如下所示: public class SchemaGroupModel extends AbstractListModel implements ComboBox
我如何在 java.swing.AbstractListModel 中使用 fireContentsChanged() 方法? ?当 ListModel 的某些元素的“内容”发生变化时,将调用此方法。
我是编程新手。看来我研究得越多,我自己就越困惑,我不得不过度思考需要做什么。抽象列表模型是使 Jlist 正常工作所需要的。我需要知道什么是对/错。如果需要使用 getselectedvalues()
我的“虚拟列表”在 swing 中运行良好,但当我超过某些特定数量的项目时它似乎失败了。 “失败”是指当项目数 > Nmax 时滚动条神奇地消失,当项目数 oldLength)
我是一名优秀的程序员,十分优秀!