我正在开发一个JavaFX 8应用程序,我有一个tableView和一些textFields,可以搜索/过滤tableView中的某些列.我已经为textFields添加了一个监听器,以便在检测到更改时自动触发过滤.我使用下面的代码来做到这一点.
textField_filterAddress.textProperty().addListener((observable, oldValue, newValue) -> {
doSomething(); // in this case, filter table data and refresh tableView afterwards
});
Run Code Online (Sandbox Code Playgroud)
我现在的问题是:在过滤被触发之前,什么是最简单的集成某种时间延迟的方法?我想等几毫秒,因为每次用户过滤它时都在执行一个新的数据库查询,我认为这对于用户输入的每个字符都不是必需的.我宁愿等到他/她完成了他的输入.是否有某种类似的功能已经内置到整个听众的事情中?或者我必须实施自己的解决方案?如果是这样,怎么样?我考虑过某种并发解决方案,因此其他软件在等待期间不会冻结.但我以为我会问这里是否有一个更简单的解决方案,然后再考虑我自己的方式......
非常感谢提前!