有没有办法继续监听属性更改几秒钟,然后触发事件(调用方法)?
例如,当用户在文本字段中输入数据时:
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 秒钟。
正如杰弗里指出的那样,您可以使用ReactFX:
EventStreams.valuesOf(textField.textProperty())
.successionEnds(Duration.ofSeconds(2))
.subscribe(s -> doSomething(s));
Run Code Online (Sandbox Code Playgroud)