title: JavaFX animation not working
body: <p>I am trying to make an application where an object moves across the screen, only changing its x value. I am not getting any errors but it is not working when I run it. the objects are showing but the rectangle is not animating. I am not sure what to do</p>
  
  <pre><code>import javafx.animation.Animation;
  import javafx.animation.KeyFrame;
  import javafx.animation.Timeline;
  import javafx.application.Application;
  import javafx.scene.Scene;
  import javafx.scene.control.Button;
  import javafx.scene.layout.AnchorPane;
  import javafx.scene.layout.BorderPane;
  import javafx.scene.layout.HBox;
  import javafx.scene.layout.VBox;
  import javafx.scene.shape.Circle;
  import javafx.scene.shape.Rectangle;
  import javafx.stage.Stage;
  import javafx.util.Duration;
  
  public class Main extends Application {
  
      private BorderPane root;
      private Stage stage;
      private Scene scene;
      private AnchorPane anchorPane;
      private Rectangle player;
      private Circle circles;
      private Button up, down;
      private Timeline timer;
  
      @Override
      public void start(Stage primaryStage) {
          stage = primaryStage;
          root = new BorderPane();
          scene = new Scene(root, 600, 500); //width and height of application
          stage.setScene(scene);
          stage.setTitle("Hoop runner");  //text for the title bar of the window
  
          scene.getStylesheets().add("hoop.css");
  
          anchorPane = new AnchorPane();
          anchorPane.setMaxHeight(500);
          anchorPane.setMinHeight(500);
          anchorPane.setMinWidth(600);
          anchorPane.setMaxWidth(600);
          player = new Rectangle();
          circles = new Circle();
          up = new Button("˄");
          down = new Button("˅");
  
  
          root.setCenter(new VBox(new VBox(circles),
                  new HBox(player)));
  
          root.setCenter(anchorPane);
  
          player.setX(5);
          player.setY(380);
          player.setHeight(80);
          player.setWidth(120);
          anchorPane.getChildren().add(player);
  
          timer = new Timeline(Animation.INDEFINITE);
  
          timer.setCycleCount(Animation.INDEFINITE);
  
          timer.getKeyFrames().add(new KeyFrame(Duration.INDEFINITE, event -&gt; maverick()));
  
  
          timer.play();
  
  
  
  
  
  
  
          stage.show();
  
  
  
  
      }
  
      private void  maverick() {
  
  
  
  
              timer.play();
              System.out.println("hi");
              player.setX(player.getX() + 2);
              timer.play();
  
      }
  
  
      public static void main(String[] args) {
          launch(args);
      }
  }
  </code></pre>