gpt4 book ai didi

java - JavaFX 中使用计时器计算按钮点击次数

转载 作者:行者123 更新时间:2023-12-01 08:52:13 25 4
gpt4 key购买 nike

我正在尝试使用键盘输入来模拟短信应用程序,就像在旧手机中您必须单击 f.e.按钮“2”两次输入字母“b”,三次输入“c”等。我有几个按钮,对于每个按钮,我需要设置某种延迟,以便我可以根据需要多次单击字母或符号。我知道 java.util.Timer 在这里可以很方便,但我不明白如何在这种情况下应用它,以及如何仅在第一次单击“按钮”而不是每次单击“按钮”后才打开延迟。下面是我在代码中使用的示例 FXML 元素以及单击按钮时调用的方法。

...
@FXML
Button button_2;

...

public void handleButton2(){
//Code to execute to count clicks ?
...
//Array of Strings instead of Characters to use .appendText without parsing
String []letters = {"a", "b", "c", "2"};
sms_text_area.appendText(letters[/*index of letter*/]);
}
...

最佳答案

请注意,您只想更改最后单击的按钮所代表的字符串。

一般来说,要在延迟后执行某些操作,请使用 PauseTransition

所以只需引入一些额外的字段:

private Button lastButtonClicked ;
private int buttonClickCount ;

private final PauseTransition buttonPressDelay
= new PauseTransition(Duration.seconds(0.5));

然后

public void handleButton2(){

String[] letters = {"a", "b", "c", "2"};

buttonPressDelay.setOnFinished(e -> {
sms_text_area.appendText(letters[buttonClickCount]);
lastButtonClicked = null ;
});

if (lastButtonClicked == button_2) {
buttonClickCount = (buttonClickCount + 1) % letters.length ;
} else {
buttonClickCount = 0 ;
}
buttonPressDelay.playFromStart();
lastButtonClicked = button_2 ;
}

关于java - JavaFX 中使用计时器计算按钮点击次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42316203/

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