Class Animator

java.lang.Object
com.formdev.flatlaf.util.Animator

public class Animator extends Object
Simple animator based on ideas and concepts from "Filthy Rich Clients" book and "Timing Framework" library.
  • Field Details

    • duration

      private int duration
    • resolution

      private int resolution
    • interpolator

      private Animator.Interpolator interpolator
    • targets

      private final ArrayList<Animator.TimingTarget> targets
    • endRunnable

      private final Runnable endRunnable
    • running

      private boolean running
    • hasBegun

      private boolean hasBegun
    • timeToStop

      private boolean timeToStop
    • startTime

      private long startTime
    • timer

      private Timer timer
  • Constructor Details

    • Animator

      public Animator(int duration)
      Creates an animation that runs duration milliseconds. Use addTarget(TimingTarget) to receive timing events and start() to start the animation.
      Parameters:
      duration - the duration of the animation in milliseconds
    • Animator

      public Animator(int duration, Animator.TimingTarget target)
      Creates an animation that runs duration milliseconds. Use start() to start the animation.
      Parameters:
      duration - the duration of the animation in milliseconds
      target - the target that receives timing events
    • Animator

      public Animator(int duration, Animator.TimingTarget target, Runnable endRunnable)
      Creates an animation that runs duration milliseconds. Use start() to start the animation.
      Parameters:
      duration - the duration of the animation in milliseconds
      target - the target that receives timing events
      endRunnable - a runnable invoked when the animation ends; or null
  • Method Details

    • useAnimation

      public static boolean useAnimation()
      Checks whether animations are enabled (the default) or disabled via system property flatlaf.animation set to false. This allows disabling all animations at command line with -Dflatlaf.animation=false.
    • getDuration

      public int getDuration()
      Returns the duration of the animation in milliseconds.
    • setDuration

      public void setDuration(int duration)
      Sets the duration of the animation in milliseconds.
      Throws:
      IllegalStateException - if animation is running
      IllegalArgumentException - if duration is <= zero
    • getResolution

      public int getResolution()
      Returns the resolution of the animation in milliseconds (default is 10). Resolution is the amount of time between timing events.
    • setResolution

      public void setResolution(int resolution)
      Sets the resolution of the animation in milliseconds.
      Parameters:
      resolution - the resolution of the animation in milliseconds
      Throws:
      IllegalStateException - if animation is running
      IllegalArgumentException - if resolution is <= zero
    • getInterpolator

      public Animator.Interpolator getInterpolator()
      Returns the interpolator for the animation. Default is null, which means linear.
    • setInterpolator

      public void setInterpolator(Animator.Interpolator interpolator)
      Sets the interpolator for the animation.
      Throws:
      IllegalStateException - if animation is running
    • addTarget

      public void addTarget(Animator.TimingTarget target)
      Adds a target to the animation that receives timing events.
      Parameters:
      target - the target that receives timing events
    • removeTarget

      public void removeTarget(Animator.TimingTarget target)
      Removes a target from the animation.
      Parameters:
      target - the target that should be removed
    • start

      public void start()
      Starts the animation.
      Throws:
      IllegalStateException - if animation is running
    • stop

      public void stop()
      Stops the animation before it normally ends. Invokes Animator.TimingTarget.end() on timing targets.
    • cancel

      public void cancel()
      Cancels the animation before it normally ends. Does not invoke Animator.TimingTarget.end() on timing targets.
    • stop

      private void stop(boolean cancel)
    • restart

      public void restart()
      Restarts the animation. Invokes cancel() and start().
    • isRunning

      public boolean isRunning()
      Returns whether this animation is running.
    • getTimingFraction

      private float getTimingFraction()
    • clampFraction

      private float clampFraction(float fraction)
    • timingEvent

      private void timingEvent(float fraction)
    • begin

      private void begin()
    • end

      private void end()
    • throwExceptionIfRunning

      private void throwExceptionIfRunning()