import javafx.application.Application; 
import javafx.concurrent.Task; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
 
public class Main extends Application { 
 
  @Override 
  public void start(Stage stage) { 
    Group root = new Group(); 
    Scene scene = new Scene(root, 300, 150); 
    stage.setScene(scene); 
    stage.setTitle("Sample"); 
 
    final int totalIterations = 90; 
 
    IteratingTask task = new IteratingTask(totalIterations); 
  
    task.run(); 
    System.out.println(task.getMessage()); 
 
    stage.show(); 
  } 
 
  public static void main(String[] args) { 
    launch(args); 
  } 
} 
class IteratingTask extends Task<Integer> { 
  private final int totalIterations; 
 
  public IteratingTask(int totalIterations) { 
      this.totalIterations = totalIterations; 
  } 
 
  @Override protected Integer call() throws Exception { 
      int iterations = 0; 
      for (iterations = 0; iterations < totalIterations; iterations++) { 
          if (isCancelled()) { 
              updateMessage("Cancelled"); 
              break; 
          } 
          updateMessage("Iteration " + iterations); 
          updateProgress(iterations, totalIterations); 
      } 
      return iterations; 
  } 
} 
 
    
  
  |