JavaFX ListView SelectionModel java.lang.IllegalStateException

时间:2014-05-02 13:04:51

标签: list listview javafx

我编写了一个JavaFX示例,其中显示了ListView(右),其项目是另一个ListView(左)的选定项目。右ListView会自动跟踪第一个选择更改。

这很好用,但是当我使用键盘将选择扩展到列表的下端之外时有一个例外:选择列表的最后一项然后Shift + ArrowDown会导致此异常:

  

java.lang.IllegalStateException:无效的更改状态:next()必须是   在检查变更之前调用。

知道为什么会这样吗?这是我的代码或JavaFX中的错误吗?

public void start(Stage stage) {

    ObservableList<String> items = FXCollections.observableArrayList(
            "Julia", "Ian", "Sue", "Matthew", "Hannah", "Stephan", "Denise");
    ListView<String> listView = new ListView<>(items);

    MultipleSelectionModel<String> selectionModel = listView.getSelectionModel();
    selectionModel.setSelectionMode(SelectionMode.MULTIPLE);
    ObservableList<String> selectedItems = selectionModel.getSelectedItems();

    ListView<String> selectedItemsListView = new ListView<>(selectedItems);

    HBox root = new HBox(5, listView, selectedItemsListView);

    Scene scene = new Scene(root, 500, 300);
    stage.setTitle("List View Sample");
    stage.setScene(scene);
    stage.show();
}

0 个答案:

没有答案