Java Wait Function

2020-05-03 12:08发布

问题:

I was wondering if you guys could help me out. I'm trying to make an animation program with Java's built in graphics module... The thing is, Java executes everything at once; there isn't any time between the different animations. The end product is just the last picture. I need a function that puts like half a second in between each of the pictures.

Any help is appreciated.

Specs: Blue-J, JDK 6.

Edit: Btw, I'm a Java Newbie, and this is a class thing. The assignment was to make an animation, and press 'c' to go forward each frame, but I think thats kinda ghetto, so I want something better.

回答1:

Create a javax.swing.Timer that executes each X milliseconds, and draws one frame each time it is triggered.

This is the example from the javadoc:

  int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //...Perform a task...
      }
  };
  new Timer(delay, taskPerformer).start();

Modify the delay, to e.g. 20ms. That will give you about 50 frames per second if your painting doesn't take too long.



回答2:

Maybe a simple sleep might be enough for you?

Thread.sleep(milliseconds);