一些元素的倾听者

时间:2017-03-01 19:13:48

标签: java javafx javafx-8 listener

一个非常简单的问题:我的spinners中有3个DatePickerPane有一个完整的yyyy/mm/dd hh:mm:ss日期(如果有比这4个更好的解决方案)元素告诉我)

正如我们可以在find_pseudo.textProperty().addListener(...) TextField上做{I}我希望在FOUR元素上有一个监听器,如果其中一个有变化 - >>我可以做我需要做的事情(它在排序列表上设置谓词)

1 个答案:

答案 0 :(得分:2)

你可以做到

ObjectBinding<LocalDateTime> dateTime = Bindings.createObjectBinding(() -> 
    LocalDateTime.of(
        datePicker.getValue(), 
        LocalTime.of(hourSpinner.getValue(), minuteSpinner.getValue(), secondsSpinner.getValue())),
    datePicker.valueProperty(), hourSpinner.valueProperty(), minuteSpinner.valuePropertY(), secondsSpinner.valueProperty());

然后dateTime.getValue()将在任何字段更新时更新,并且也可以观察,即你可以

dateTime.addListener((obs, oldDateTime, newDateTime) -> {
    // do something with newDateTime
});

filteredList.predicateProperty().bind(Bindings.createObjectBinding(() -> 
    myObject -> myObject.getSomeDateTimeValue().isAfter(dateTime.getValue()),
    dateTime));