Est*_*uez 0 javafx datepicker tableview
用最简单的方式来说,我想根据两个 DatePicker 中选定日期的日期范围来过滤 TableView 中的数据。
有没有办法添加侦听器或类似于在 TextFields 上使用 addListener 的方法,或者是否有更好的方法来解决此问题?我找不到任何解释这一点的教程。
我是否应该只在按下按钮时调用 Postgres 视图来更新表?
在图像中,如果它正常工作,它将仅显示 TID 16 和 17 的行,其中“Opened”列中的日期位于日期范围之间。
LocalDate
我假设您在项目类别中使用以下答案。如果您使用java.sql.Date
以下问题解释如何进行转换:
用于FilteredList
过滤完整的数据集(假设数据库表足够小,可以将其存储在客户端的内存中)。
ObservableList<TableItem> allItems = ...
FilteredList<TableItem> filteredItems = new FilteredList<>(allItems);
// bind predicate based on datepicker choices
filteredItems.predicateProperty().bind(Bindings.createObjectBinding(() -> {
LocalDate minDate = startPicker.getValue();
LocalDate maxDate = endPicker.getValue();
// get final values != null
final LocalDate finalMin = minDate == null ? LocalDate.MIN : minDate;
final LocalDate finalMax = maxDate == null ? LocalDate.MAX : maxDate;
// values for openDate need to be in the interval [finalMin, finalMax]
return ti -> !finalMin.isAfter(ti.getOpenDate()) && !finalMax.isBefore(ti.getOpenDate());
},
startPicker.valueProperty(),
endPicker.valueProperty()));
tableView.setItems(filteredItems);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2512 次 |
最近记录: |