gpt4 book ai didi

java - 添加用于取消 ListView 中选择的监听器 (JavaFX)

转载 作者:行者123 更新时间:2023-11-30 06:58:01 31 4
gpt4 key购买 nike

现在我正在练习JavaFX。我有一个关于 ListView 的问题。我可以为 ListView 的多个选择创建一个监听器。但是,当我取消选择时,我创建的监听器不会反射(reflect)取消。我怎样才能让听众反射(reflect)这一点?以下是我制作的监听器。

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

最佳答案

要在启用多个选择时更改选择,请将 ListChangeListener 添加到 selectedItems 列表(注意 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");
}
}
);

关于java - 添加用于取消 ListView 中选择的监听器 (JavaFX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41448986/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com