title: Java TimerTick event for game loop
body: <p>I tried making a game loop in Java using the Timer from java.util.Timer. I am unable to get my game loop to execute during the timer tick. Here is an example of this issue. I am trying to move the button during the game loop, but it is not moving on the timer tick event.</p>
  
  <pre><code>import java.util.Timer;
  import java.util.TimerTask;
  import javax.swing.JFrame;
  import javax.swing.JButton;
  
  public class Window extends JFrame {
  
      private static final long serialVersionUID = -2545695383117923190L;
      private static Timer timer;
      private static JButton button;
  
      public Window(int x, int y, int width, int height, String title) {
  
          this.setSize(width, height);
          this.setLocation(x, y);
          this.setTitle(title);
          this.setLayout(null);
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          this.setVisible(true);
  
          timer = new Timer();
          timer.schedule(new TimerTick(), 35);
  
          button = new JButton("Button");
          button.setVisible(true);
          button.setLocation(50, 50);
          button.setSize(120, 35);
          this.add(button);
      }
  
      public void gameLoop() {
  
          // Button does not move on timer tick.
          button.setLocation( button.getLocation().x + 1, button.getLocation().y );
  
      }
  
      public class TimerTick extends TimerTask {
  
          @Override
          public void run() {
              gameLoop();
          }
      }
  }
  </code></pre>