/** speed the same as normal play */
 public boolean rewind() {
   paused = false;
   while (!paused && frameIndex > 0) {
     timePassed = System.currentTimeMillis() - lastTime;
     showPreviousFrame();
     if (timePassed < frameTime) {
       try {
         Thread.sleep(frameTime - timePassed);
       } catch (InterruptedException e) {
         Thread.currentThread().interrupt();
       }
     }
     lastTime = System.currentTimeMillis();
   }
   paused = true;
   changeToolTipText();
   return frameIndex == 0;
 }
 public boolean play() {
   paused = false;
   int l1 = length() - 1;
   while (!paused && frameIndex < l1) {
     timePassed = System.currentTimeMillis() - lastTime;
     showNextFrame();
     if (timePassed < frameTime) {
       try {
         Thread.sleep(frameTime - timePassed);
       } catch (InterruptedException e) {
         Thread.currentThread().interrupt();
       }
     }
     lastTime = System.currentTimeMillis();
   }
   paused = true;
   changeToolTipText();
   return frameIndex == l1;
 }