- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个扩展 AbstractListModel 的 ComboBoxModel 类。我可以将项目添加到组合框,但是当我尝试删除时,出现异常
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: null source
在行
this.fireIntervalRemoved(selectedItem, itemIndex, itemIndex);
public class TComboBoxModel extends AbstractListModel implements ComboBoxModel {
private int itemIndex;
private Object selectedItem = null;
private ArrayList<Object> itemList;
public TComboBoxModel() {
itemList = new ArrayList<>();
}
public void addItem(String item) {
this.itemList.add(item);
this.fireIntervalAdded(item, itemIndex, itemIndex);
}
public void removeItem() {
if (itemIndex >= 0 && itemIndex < getSize()) {
this.itemList.remove(itemIndex);
this.fireIntervalRemoved(selectedItem, itemIndex, itemIndex);
}
}
@Override
public void setSelectedItem(Object anObject) {
if ((selectedItem != null && !selectedItem.equals(anObject)) || selectedItem == null && anObject != null) {
this.selectedItem = anObject;
this.fireContentsChanged(anObject, -1, -1);
}
}
@Override
public Object getSelectedItem() {
return selectedItem;
}
@Override
public int getSize() {
return itemList.size();
}
@Override
public Object getElementAt(int index) {
return itemList.get(index).toString();
}
public int getItemIndex() {
return itemIndex;
}
public void increaseItemIndex() {
itemIndex++;
}
public void decreaseItemIndex() {
itemIndex--;
}
}
最佳答案
将 this
传递给模型中的 fire*
方法。事件源是模型,而不是项目。
来自documentation :
source - the ListModel that changed, typically "this"
关于java - ComboBoxModel - fireIntervalRemoved 的 removeItem 方法抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345498/
我正在尝试使用基于玩家枚举的枚举来填充组合框。 例如,在初始化游戏时,玩家选择一个派系(FactionType)。 FactionType 枚举用于每个单位 (ShipType) 的枚举值。 Ship
据我们所知 ComboBoxModel接口(interface)用于在女巫中创建一个类,我们可以指定如何将对象集合(模型)与组合框相关联,基本上是通过提供有关如何检索项目和设置当前项目的必要“信息”。
我似乎没有掌握事件等概念。在阅读了一段时间有关如何实现监听器等内容后,我看到了 Java 教程,说我应该扩展 AbstractListModel 以触发数据事件。由于某种原因,它仍然不起作用。 我做错
在我的项目中,我有几个带有自定义模型的 JComboBox。基本上它们用于显示某些 JTables 列的值(因此我决定在相对的上实现它们类扩展 AbstractTableModel)。 public
我需要我的组合框包含组织的简称。问题是我可以在下拉列表中看到组织名称,但无法实际选择它。我的错误在哪里? public class ToComboBoxModel extends AbstractLi
我将简要解释我正在发生的事情,然后提供一些我的代码。 我有一个小型 GUI,我可以在 JComboBox 上选择一个选项,然后单击一个按钮,打开一个 JFileChooser,该按钮应根据 JComb
这个问题在这里已经有了答案: Why isn't getSelectedItem() on JComboBox generic? (2 个答案) 关闭 5 年前。 使用Swing的ComboBoxM
我创建了一个扩展 AbstractListModel 的 ComboBoxModel 类。我可以将项目添加到组合框,但是当我尝试删除时,出现异常 Exception in thread "AWT-Ev
这是我的代码: ComboBoxModel arrDiv1 = new DefaultComboBoxModel(new String[]{"Alaminos City", "Batac City",
我有以下情况:在 JCombobox 中,首选大小基于最大的项目大小。但是,此计算未考虑为 null 呈现的值。它只关心模型内部的值。因此,当用于呈现空值的文本大于其他元素时,标签将被截断,并且我在末
我的 swing 应用程序中有 2 个组合框 - 在下面的代码中,您将看到 Spring 的元素,因为我也在使用 Spring。我无法删除 spring,否则如果没有大量重构工作来取代 Spring,
我知道这可能是基于意见的,但它可以回答后续问题: Vector 有一个适用于任何 Collection 的构造函数,那么为什么 JComboBox 和关联的类只使用 Vector?是否可以对 Defa
我是 Kotlin 新手,正在将一些 Java 代码翻译成它。 我想出的代码是: val comboBox: JComboBox = JComboBox() comboBox.font
我是一名优秀的程序员,十分优秀!