Search code examples
animationjavafxtransitioninvisible

Why is my JavaFX PathTransition invisible?


I copied some code from the Internet which is similar to the one found on the official JavaFX sample page:

final Rectangle rectPath = new Rectangle (0, 0, 40, 40);
rectPath.setArcHeight(10);
rectPath.setArcWidth(10);
rectPath.setFill(Color.ORANGE);
Path path = new Path();
path.getElements().add(new MoveTo(20,20));
path.getElements().add(new CubicCurveTo(380, 0, 380, 120, 200, 120));
path.getElements().add(new CubicCurveTo(0, 120, 0, 240, 380, 240));
PathTransition pathTransition = new PathTransition();
pathTransition.setDuration(Duration.millis(4000));
pathTransition.setPath(path);
pathTransition.setNode(rectPath);
pathTransition.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);
pathTransition.setCycleCount(Timeline.INDEFINITE);
pathTransition.setAutoReverse(true);
pathTransition.play();
// add the path to a pane:
myPane.getChildren().add(path);

Now what I get is just the path but no floating rectangle:

What do I have to do to make the visualization acutally play?


Solution

  • You need to add your rectangle (rectPath) to your scene, or you will not see it:

    myPane.getChildren().add(path, rectPath);