A Task Which Modifies The Scene Graph : Task « JavaFX « Java






A Task Which Modifies The Scene Graph

 

import javafx.application.Application;
import javafx.application.Platform;
import javafx.concurrent.Task;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class Main extends Application {

  @Override
  public void start(Stage stage) {
    final Group group = new Group();
    Scene scene = new Scene(group, 300, 150);
    stage.setScene(scene);
    stage.setTitle("Sample");

 
    Task<Void> task = new Task<Void>() {
      @Override
      protected Void call() throws Exception {
        for (int i = 0; i < 10; i++) {
          if (isCancelled())
            break;
          final Rectangle r = new Rectangle(10, 10);
          r.setX(10 * i+i);
          Platform.runLater(new Runnable() {
            @Override
            public void run() {
              group.getChildren().add(r);
            }
          });
        }
        return null;
      }
    };
    task.run();
    System.out.println(task.getMessage());

    stage.show();
  }

  public static void main(String[] args) {
    launch(args);
  }
}



 

   
  








Related examples in the same category

1.extends Task
2.A Task Which Returns No Value
3.A Task Which Returns An ObservableList
4.A Task Which Takes Parameters
5.Writing a Task
6.A Simple Loop With Progress Notification
7.A Simple Loop With Progress Notification And Blocking Calls
8.Reacting To State Changes