/* * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. */ import javafx.animation.ParallelTransition; import javafx.animation.PathTransition; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; import javafx.scene.shape.Rectangle; import javafx.scene.shape.Shape; import javafx.stage.Stage; import javafx.util.Duration; /** * * @author Alexander Kouznetsov */ public class Bug extends Application { public static void main(String[] args) { // System.setProperty("prism.dirtyopts", "false"); launch(args); } @Override public void start(final Stage stage) throws Exception { Shape circle = new Circle(50); Rectangle rect1 = new Rectangle(10, 10, Color.RED); rect1.setLayoutX(50); rect1.setLayoutY(50); Rectangle rect2 = new Rectangle(10, 10, Color.GREEN); rect2.setLayoutX(150); rect2.setLayoutY(50); PathTransition pathTransition1 = new PathTransition(Duration.millis(1000), circle, rect1); pathTransition1.setDelay(Duration.millis(500)); pathTransition1.setCycleCount(PathTransition.INDEFINITE); PathTransition pathTransition2 = new PathTransition(Duration.millis(1000), circle, rect2); pathTransition2.setDelay(Duration.millis(0)); ParallelTransition pt = new ParallelTransition(pathTransition1, pathTransition2); pt.setOnFinished(new EventHandler() { public void handle(ActionEvent t) { System.out.println("finished"); } }); pt.play(); Scene scene = new Scene(new Group(rect1, rect2), 200, 200); stage.setScene(scene); stage.show(); } }