一个非常简单的问题:我的spinners
中有3个DatePicker
和Pane
有一个完整的yyyy/mm/dd hh:mm:ss
日期(如果有比这4个更好的解决方案)元素告诉我)
正如我们可以在find_pseudo.textProperty().addListener(...)
TextField
上做{I}我希望在FOUR元素上有一个监听器,如果其中一个有变化 - >>我可以做我需要做的事情(它在排序列表上设置谓词)
答案 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));