我有一个文字和一个输入字段。如果输入对于文本是正确的,则输入字段的背景应更改为绿色。 然后程序应停止1秒(并显示输入)然后它应生成一个带有random()的新文本,并将颜色更改回白色。
input.setOnKeyPressed(e -> {
if (e.getCode() == KeyCode.ENTER) {
if(value.equals(input.getText())){
input.setStyle("-fx-background-color: green");
System.out.println("right!");
// now it should wait 1 second
// and display only the input & green background
try{ Thread.sleep(1000);
} catch(InterruptedException i){
throw new Error("interrupted");
}
// random changes the Text and the input will reset
random();
input.setText("");
input.setStyle("-fx-background-color: white");
}
else{
System.out.println("false");
}
}
});
但问题是,背景永远不会变为绿色。这一秒钟它只显示我的输入。然后我得到一个新文本,我的背景变为白色。
您有什么想法如何更改此时的背景颜色? 谢谢你的回答!
修改
它适用于 PauseTransition 而不是Thread,所以:
PauseTransition wait = new PauseTransition(Duration.seconds(1));
wait.setOnFinished(event -> {
random();
input.setStyle("-fx-background-color: white");
input.setText("");
});
wait.play();