因此,我想将按钮的颜色更改为浅绿色,请等待1秒钟,然后再将其更改为默认值。 我怎样才能做到这一点?我是这样尝试的:
button1.setStyle("-fx-background-color: lightgreen");
try { Thread.sleep(1000); }
catch(InterruptedException e) {}
button1.setStyle("");
但是我有2个问题:
-
颜色从不设置为浅绿色,而仅设置为默认颜色。
-
如果我只想将其更改为浅绿色,它只会在等待1秒后更改,而不是在等待之前更改。
编辑:
因此,我不得不使用PauseTransition,但是它无法按照我想要的方式工作。
for(int i=0; i<n; i++) {
int x = rand.nextInt(4) + 1;
switch(x) {
case 1: {
System.out.println("b1");
button1.setStyle("-fx-background-color: lightgreen; -fx-border-color: black;");
PauseTransition wait = newPauseTransition(Duration.seconds(1));
wait.setOnFinished(event -> {
button1.setStyle("");
});
wait.play();
}
break;
case 2: {
System.out.println("b2");
button2.setStyle("-fx-background-color: lightgreen; -fx-border-color: black;");
PauseTransition wait = new PauseTransition(Duration.seconds(1));
wait.setOnFinished(event -> {
button2.setStyle("");
});
wait.play();
}
break;
...
}
现在的问题是while()不会等到按钮变回默认值,它才会开始新的迭代。