小编PAW*_*AWL的帖子

JavaFX ComboBox OnChangeListener 回滚更改

ComboBox我正在尝试重置如下的选择:

// private ListView<MyEntityType> f_lItems

f_lItems.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Object>() {
    @Override
    public void changed(ObservableValue<?> ov, Object t, Object t1) {
        if (t1 != null && t1 instanceof MyEntityType) {

            MyEntityType pv = (MyEntityType) t1;
            // do some condition testing
            if (condition) {
                // accept 
            } else 
                // roll back to previous item
                f_lItems.getSelectionModel().select((MyEntityType) t);
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

因此,在尝试将列表重置为旧值后,我收到此异常:

Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
    at com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(Unknown Source)
    at javafx.collections.ListChangeListener$Change.getAddedSubList(Unknown Source)
    at com.sun.javafx.scene.control.behavior.ListViewBehavior.lambda$new$177(Unknown Source)
    at javafx.collections.WeakListChangeListener.onChanged(Unknown Source)
    at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

java combobox javafx listener

5
推荐指数
1
解决办法
5931
查看次数

标签 统计

combobox ×1

java ×1

javafx ×1

listener ×1