import javafx.animation.KeyFrame; 
import javafx.animation.KeyValue; 
import javafx.animation.Timeline; 
import javafx.animation.TimelineBuilder; 
import javafx.application.Application; 
import javafx.beans.property.DoubleProperty; 
import javafx.beans.property.SimpleDoubleProperty; 
import javafx.scene.GroupBuilder; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.scene.SceneBuilder; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Rectangle; 
import javafx.scene.shape.RectangleBuilder; 
import javafx.stage.Stage; 
import javafx.util.Duration; 
 
public class Main extends Application { 
    public static void main(String[] args) { 
        launch(args); 
    } 
 
    @Override 
    public void start(Stage stage) { 
      DoubleProperty translate = new SimpleDoubleProperty();       
        stage.setTitle("Hello JavaFX"); 
        Rectangle node1 = RectangleBuilder.create() 
            .x(0) 
            .y(0) 
            .width(10) 
            .height(10) 
            .fill(Color.RED) 
            .build(); 
        node1.translateXProperty().bind(translate); 
 
        Parent parent =  GroupBuilder.create() 
            .children(node1) 
            .translateX(250) 
            .translateY(250) 
            .build();         
        stage.setScene(SceneBuilder.create() 
            .width(500) 
            .height(500) 
            .root(parent) 
            .build()); 
        stage.show(); 
 
        TimelineBuilder.create() 
            .cycleCount(Timeline.INDEFINITE) 
            .keyFrames( 
                new KeyFrame( 
                    Duration.seconds(0), 
                    new KeyValue(translate, -50) 
                ), 
                new KeyFrame( 
                    Duration.seconds(2), 
                    new KeyValue(translate, 250) 
                ) 
            ) 
            .build().play(); 
    } 
} 
 
    
  
  |