public class Animator
extends java.lang.Thread
Thread to provide several features that make it
easier to build animations. These features include a pause
method that does not raise an exception and a requestTermination
method that signals that the execution of this thread should stop at its
next opportunity. It also includes hooks to support a start/stop/single-step
model for algorithm animation although the user-interface code is not implemented
here.| Modifier and Type | Field and Description |
|---|---|
static int |
CALLING
Constant indicating that the animator is running until the end of the current call.
|
static int |
FINISHED
Constant indicating that the animator has finished its
run method. |
static int |
INITIAL
Constant indicating that the animator has not yet started.
|
static int |
RUNNING
Constant indicating that the animator is running.
|
static int |
STEPPING
Constant indicating that the animator is running in single-step mode.
|
static int |
STOPPED
Constant indicating that the animator is suspended waiting for restart.
|
static int |
STOPPING
Constant indicating that the animator should stop at the next trace point.
|
static int |
TERMINATING
Constant indicating that the animator has been asked to terminate.
|
| Constructor and Description |
|---|
Animator()
Creates a new
Animator object. |
Animator(java.lang.Runnable runnable)
Creates a new
Animator object with the specified runnable object. |
Animator(java.lang.ThreadGroup group)
Creates a new
Animator object and assigns it to the
specified thread group. |
Animator(java.lang.ThreadGroup group,
java.lang.Runnable runnable)
Creates a new
Animator object with the specified runnable object
and assigns it to the specified thread group. |
| Modifier and Type | Method and Description |
|---|---|
void |
breakpoint()
Suspends the animator until one of the restart actions is triggered.
|
boolean |
buttonAction(java.lang.String actionCommand)
Triggers an action for the action specified by the
action command.
|
void |
callAction()
Triggers a
"call" action, as if the Call button
is pushed. |
void |
checkForTermination()
Checks to see whether this
Animator has been asked
to terminate. |
void |
delay()
Delays the calling thread according to the speed.
|
int |
getAnimatorState()
Returns the state of the animator.
|
double |
getSpeed()
Returns the speed parameter for the animator.
|
void |
pause(double milliseconds)
Delays this thread for the specified time, which is expressed in
milliseconds.
|
void |
registerSpeedBar(javax.swing.JScrollBar scrollBar)
Registers the specified scroll bar as the delay controller for the animator.
|
void |
registerSpeedBar(javax.swing.JSlider slider)
Registers the specified slider as the delay controller for the animator.
|
void |
registerSpeedBar(java.lang.Object speedBar)
Registers the specified speed bar as the delay controller for the animator.
|
void |
requestTermination()
Signals the
Animator that it should stop running at the
next available opportunity, which is when the client next calls
pause or checkForTermination. |
void |
run()
Specifies the code for the animator.
|
void |
setSpeed(double speed)
Sets the speed parameter for the animator.
|
void |
start()
Starts the thread.
|
void |
startAction()
Triggers a
"start" action, as if the Start button
is pushed. |
void |
stepAction()
Triggers a
"step" action, as if the Step button
is pushed. |
void |
stopAction()
Triggers a
"stop" action, as if the Stop button
is pushed. |
void |
trace()
Checks the state of the animator and executes any actions have been requested.
|
void |
trace(int depth)
Checks the state of the animator and executes any actions have been requested
to occur at the specified call stack depth.
|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, toString, yieldpublic static final int INITIAL
public static final int RUNNING
public static final int STEPPING
public static final int CALLING
public static final int STOPPING
public static final int STOPPED
public static final int FINISHED
run method.public static final int TERMINATING
public Animator()
Animator object.public Animator(java.lang.ThreadGroup group)
Animator object and assigns it to the
specified thread group.group - The ThreadGroup to which the new thread is assignedpublic Animator(java.lang.Runnable runnable)
Animator object with the specified runnable object.runnable - Any object that implements the Runnable interfacepublic Animator(java.lang.ThreadGroup group,
java.lang.Runnable runnable)
Animator object with the specified runnable object
and assigns it to the specified thread group.group - The ThreadGroup to which the new thread is assignedrunnable - Any object that implements the Runnable interfacepublic void run()
run in interface java.lang.Runnablerun in class java.lang.Threadpublic int getAnimatorState()
INITIAL,
RUNNING,
STEPPING,
CALLING,
STOPPING,
STOPPED,
FINISHED, or
TERMINATING,
as defined in this class.public void pause(double milliseconds)
Thread.sleep, this method never
throws an exception.milliseconds - The sleep time in millisecondspublic void startAction()
"start" action, as if the Start button
is pushed.public void stopAction()
"stop" action, as if the Stop button
is pushed.public void stepAction()
"step" action, as if the Step button
is pushed.public void callAction()
"call" action, as if the Call button
is pushed.public boolean buttonAction(java.lang.String actionCommand)
actionCommand - The action command from the buttontrue if the action command is recognizedpublic void setSpeed(double speed)
double
between 0.0 and 1.0, for which 0.0 is very slow and 1.0 is as fast as the
system can manage.speed - A double between 0.0 (slow) and 1.0 (fast)public double getSpeed()
double
between 0.0 and 1.0, for which 0.0 is very slow and 1.0 is as fast as the
system can manage.public void trace()
public void trace(int depth)
Call button functionality.depth - The current call stack depth.public void breakpoint()
public void delay()
public void registerSpeedBar(javax.swing.JSlider slider)
slider - The slider which will serve as the speed bar for this animatorpublic void registerSpeedBar(javax.swing.JScrollBar scrollBar)
scrollBar - The scroll bar which will serve as the speed bar for this animatorpublic void registerSpeedBar(java.lang.Object speedBar)
speedBar - The speed bar for this animatorpublic void requestTermination()
Animator that it should stop running at the
next available opportunity, which is when the client next calls
pause or checkForTermination. Making this
check at well-managed times makes it possible for the client to
ensure that objects are left in a consistent state and thereby
avoids the problems that led Sun to deprecate Thread.stop.public void checkForTermination()
Animator has been asked
to terminate. If so, the Animator stops running,
and the call never returns. If not, other threads are given a
chance to run, after which this Animator will return
to the caller.public void start()
start in class java.lang.Thread