相关疑难解决方法(0)

JavaFX:Task的两个绑定属性

我有一个JavaFX 8应用程序,并希望允许任务修改两个不同的UI元素.据我了解,如果我要修改一个Label,我可以使用mylabel.textProperty().bind(mytask.messageProperty())绑定到Label,并在Task中使用updateMessage().

我怎么能用两种不同的任意类型做到这一点?我已经查看了并发和JavaFX文档中的示例,但对我来说,他们并没有很好地解释这一点.

我理解一个Task本身就有Message(String),Progress(double/long),Title(String)和Value(用户定义)属性,但是如果我想要两个或更多我自己的任意类型属性来控制UI元素呢?(并且希望避免使用runLater().)

我可以在任务上创建任意属性吗?我觉得我错过了一些明显的东西.

java java-8 javafx-8

4
推荐指数
1
解决办法
322
查看次数

JavaFX 8:如何向侦听器添加时间延迟?

我正在开发一个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)

我现在的问题是:在过滤被触发之前,什么是最简单的集成某种时间延迟的方法?我想等几毫秒,因为每次用户过滤它时都在执行一个新的数据库查询,我认为这对于用户输入的每个字符都不是必需的.我宁愿等到他/她完成了他的输入.是否有某种类似的功能已经内置到整个听众的事情中?或者我必须实施自己的解决方案?如果是这样,怎么样?我考虑过某种并发解决方案,因此其他软件在等待期间不会冻结.但我以为我会问这里是否有一个更简单的解决方案,然后再考虑我自己的方式......

非常感谢提前!

javafx timedelay delay listener livesearch

3
推荐指数
1
解决办法
1647
查看次数

标签 统计

delay ×1

java ×1

java-8 ×1

javafx ×1

javafx-8 ×1

listener ×1

livesearch ×1

timedelay ×1