Допустим, мне нужно нарисовать несколько точек на экране. Один за другим с небольшой паузой после каждой точки. Как это сделать в JavaFX?
Моя программа-пример просто ждет до конца цикла, тогда все точки появляются одновременно.
public class PointByPoint extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
GridPane root = new GridPane();
Button startButton = new Button("start");
Group group = new Group();
root.add(startButton, 0, 0);
root.add(group, 0, 1);
Scene scene = new Scene(root, 1000, 1000);
stage.setScene(scene);
stage.show();
startButton.setOnAction(actionEvent -> draw100points(group));
}
private void draw100points(Group group) {
for (int i = 0; i < 100; i++){
Circle circle = new Circle();
circle.setRadius(1);
circle.setCenterY(ThreadLocalRandom.current().nextInt(1, 1000 + 1));
circle.setCenterX(ThreadLocalRandom.current().nextInt(1, 1000 + 1));
circle.setFill(Color.BLACK);
group.getChildren().add(circle);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}}