gpt4 book ai didi

java - ChangeListener 功能用于检查带有时间延迟/或其他解决方案的键入值

转载 作者:行者123 更新时间:2023-12-02 10:25:15 27 4
gpt4 key购买 nike

我正在寻找代码中的功能,以便我可以在几秒钟内输入完整内容simpleTextField 中的名称,我需要它,因为如果我输入例如:

  1. 我输入 R - 然后方法改变正在执行它的任务
  2. 我输入 RR - 然后方法改变了,做同样的事情两次(我不想要)

那么让程序等待几秒钟的最佳方法是什么,这样我就有时间完全输入所需的值,然后方法将只执行一次

    simpleTextField.textProperty().addListener(new ChangeListener<String>() {

@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {

// some funtionality to do

}

最佳答案

使用 PauseTransition,每次修改 TextFieldtext 属性时都会从头开始播放。

以下代码在对 TextField.text 进行最后一次修改后 1 秒将 TextField 的内容添加到 ListView:

@Override
public void start(Stage primaryStage) throws Exception {
TextField text = new TextField();

ListView<String> list = new ListView<>();

PauseTransition delay = new PauseTransition(Duration.seconds(1));
delay.setOnFinished(evt -> {
list.getItems().add(text.getText());
});

// restart delay every time the text is modified
text.textProperty().addListener((o, oldValue, newValue) -> delay.playFromStart());

VBox root = new VBox(text, list);

Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}

您可能希望向 anchor 属性添加另一个监听器,以处理选择的更改。

关于java - ChangeListener 功能用于检查带有时间延迟/或其他解决方案的键入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53998735/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com