在对属性更改做出反应之前等待 JavaFX 8

mel*_*ldi 3 javafx-8

有没有办法继续监听属性更改几秒钟,然后触发事件(调用方法)?

例如,当用户在文本字段中输入数据时:

textField.textProperty().addListener(new ChangeListener<String>() {
    @Override
    public void changed(ObservableValue<? extends String> arg0, String arg1, String arg2) {
        //before calling a method to do something.. wait for a few seconds ...
        }
    }); 
Run Code Online (Sandbox Code Playgroud)

一个场景是根据字符串值触发一个动作。例如,点击“M”进行移动,或点击“MA”进行掩码。在采取行动之前,我想“继续聆听”2 秒钟。

Tom*_*ula 5

正如杰弗里指出的那样,您可以使用ReactFX

EventStreams.valuesOf(textField.textProperty())
        .successionEnds(Duration.ofSeconds(2))
        .subscribe(s -> doSomething(s));
Run Code Online (Sandbox Code Playgroud)