0

AbstractListModel を拡張する ComboBoxModel クラスを作成しました。コンボボックスに項目を追加できますが、削除しようとすると例外が発生します

スレッド「AWT-EventQueue-0」での例外 java.lang.IllegalArgumentException: null ソース

行で

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--;
    }

}
4

2 に答える 2