java—在listview中添加用于取消选择的侦听器(javafx)

iqjalb3h  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(544)

现在我在练习javafx。我对listview有个问题。我可以为listview的多个选择创建一个侦听器。但是,当我取消选择时,我所做的侦听器并不反映取消。我怎样才能成为一个能反映它的倾听者?下面是我做的一个听众。

ListView<String> lv = new ListView<>(FXCollections.observableArrayList(stringArray));  // stringArray is an array that I made.

lv.getSelectionModel().selectedItemProperty().addListener(ch -> {
        System.out.println("size: " + lv.getSelectionModel().getSelectedIndices().size());
    });
zed5wv10

zed5wv101#

要在启用多个选择时更改选择,请添加 ListChangeListenerselectedItems 列表(注 selectedItems ,不是 selectedItem ):

lv.getSelectionModel().getSelectedItems().addListener(
    (ListChangeListener.Change<? extends String> ch) -> {
        System.out.println("size: " + lv.getSelectionModel().getSelectedIndices().size());
    }
);

请注意,如果您只对选择为空感兴趣,则可以这样做

Bindings.isEmpty(lv.getSelectionModel().getSelectedItems()).addListener(
    (obs, selectionWasEmpty, selectionIsNowEmpty) -> {
        if (selectionIsNowEmpty) {
            System.out.println("Nothing is selected");
        } else {
            System.out.println("Something is selected");
        }
    }
);

相关问题