【发布时间】:2020-09-23 19:26:52
【问题描述】:
我创建了一个 VBox(根)并在其中添加了一些 Button。当我单击带有文本“单击”(button_to_click)的按钮时,另外十个按钮(具有十个元素的按钮数组)会将背景颜色更改为“红色”。我希望每个按钮每秒更改其背景颜色。我使用 PauseTransition 来做到这一点,但它没有用。这是我的代码
package sample;
import javafx.animation.PauseTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.control.*;
import javafx.util.Duration;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
VBox root = new VBox();
Button button_to_click = new Button("Click");
Button[] buttons = new Button[10];
root.getChildren().add(button_to_click);
for(int i = 0; i <= 9; i++){
buttons[i] = new Button(""+i);
root.getChildren().add(buttons[i]);
}
button_to_click.setOnAction(e->{
for(int i = 0; i <= 9; i++){
buttons[i].setStyle("-fx-background-color:red");
PauseTransition pause = new PauseTransition(Duration.seconds(1));
pause.play();
}
});
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
所有按钮同时更改其背景颜色,这不是我想要的。
【问题讨论】:
标签: java button javafx eventhandler pause