【问题标题】:Event listener for multiple selection in a JavaFx listviewJavaFx 列表视图中的多选事件侦听器
【发布时间】:2017-02-17 17:10:41
【问题描述】:

我的代码中有一个 JavaFX 列表视图,可以选择多个项目。我已经确定了在选择项目时需要使用哪个事件侦听器,但是当我取消选择项目时并不总是触发该侦听器。 所以我的问题是,是否有用于选择和取消选择项目的事件侦听器?

这是我目前正在使用的事件监听器:

lvLijst.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue)
        {
            //code
        }
    });

提前致谢。

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    您需要聆听所选项目的列表,而不是单个所选项目。当您启用多项选择时,selectedItemProperty() 将始终引用选择多个项目时最后(及时)选择的项目。当列表更改时,此属性不会始终更改 - 特别是如果您取消选择除最后一个选定项之外的任何项目,因此不会通知您的侦听器每次更改列表。

    相反,做

    lvLijst.getSelectionModel().getSelectedItems().addListener((Change<? extends String> c) -> {
        // code ...
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多