public class TimerControlPanel extends JPanel
TimerControlPanel
is useful whenever you want to control value
sequences by an easy-to-use UI. The following image shows that UI:
This JPanel
contains three JButtons
for several user
definable actions:
![]() |
repeated actions, e.g.: run backward through a sequence |
![]() |
repeated actions, e.g.: run forward through a sequence |
![]() |
an action, e.g.: reset to a default value |
If the timer is running (because the user clicked on one of the arrow buttons),
will change to
.
A click on it will stop the timer at the current value.
To combine the timer functionality with data, you need
three or five several
Action
objects and create a TimerControlPanel
with them.
These user specific Action
objects specify what to do if somebody clicks on a
certain button in a certain way.
Three Action
objects present actions regarding to
Action
objects are optional and present actions regarding to
left mouse click | TimerControlPanel specific action | User specific action |
---|---|---|
![]() |
The timer starts running if the user action for the button is enabled. The button becomes disabled. |
The method actionPerformed(ActionEvent) of the
user's Action object will be repeatedly called by the timer.The ActionEvent's ActionCommand will be
TIMER_CMD . |
![]() |
The timer starts running if the user action for the button is enabled. The button becomes disabled. |
The method actionPerformed(ActionEvent) of the
user's Action object will be repeatedly called by the timer.The ActionEvent's ActionCommand will be
TIMER_CMD . |
![]() |
no action | The method actionPerformed(ActionEvent) of the
user's Action object will be called.The ActionEvent's ActionCommand will be
RESET_CMD . |
![]() |
The timer stops. | no action |
right mouse click | TimerControlPanel specific action | User specific action |
---|---|---|
![]() |
The timer stops if running. | The method actionPerformed(ActionEvent) of the
user's Action object will be called.The ActionEvent's ActionCommand will be
RIGHT_MOUSE_CLICK_CMD . |
![]() |
The timer stops if running. | The method actionPerformed(ActionEvent) of the
user's Action object will be called.The ActionEvent's ActionCommand will be
RIGHT_MOUSE_CLICK_CMD . |
See source of
TimerControlPanelExample
for a very simple implementation. Download
TimerControlPanelExample.java
for testing.
See SpinnerTimerControl
for a more complex example.
The enabled state of the directed Buttons is for timer actions only (left mouse clicks). A right mouse click also works if the buttons are disabled.
JPanel.AccessibleJPanel
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static String |
RESET_CMD
Command string of an
ActionEvent given to the method
actionPerformed(ActionEvent) of the user specific action
reset (see constructor ). |
static String |
RIGHT_MOUSE_CLICK_CMD
Command string of an
ActionEvent given to the method
actionPerformed(ActionEvent) of the user specific actions
rightClickOnForward and rightClickOnBackward (see constructor ). |
static String |
TIMER_CMD
Command string of an
ActionEvent given to the method
actionPerformed(ActionEvent) of the user specific actions
forward and backward (see constructor ). |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
TimerControlPanel(Action forward,
Action backward,
Action reset)
Creates a new
TimerControlPanel with the specified user
Action objects. |
TimerControlPanel(Action forward,
Action backward,
Action reset,
Action rightClickOnForward,
Action rightClickOnBackward)
Creates a new
TimerControlPanel with the specified user
Action objects. |
Modifier and Type | Method and Description |
---|---|
SharableTimer |
getTimer() |
int |
getTimerDelay()
Returns the delay in msec between two timer events.
|
boolean |
isCoalesce()
Returns the coalesce state the internal SharableTimer
is using.
|
void |
setCoalesce(boolean b)
Sets the coalesce state for the internal SharableTimer.
|
void |
setTimer(SharableTimer newTimer) |
void |
setTimerDelay(int newDelay)
Sets a new delay in msec between two timer events.
|
void |
updateUI() |
getAccessibleContext, getUI, getUIClassID, paramString, setUI
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static final String RESET_CMD
ActionEvent
given to the method
actionPerformed(ActionEvent)
of the user specific action
reset (see constructor
).public static final String RIGHT_MOUSE_CLICK_CMD
ActionEvent
given to the method
actionPerformed(ActionEvent)
of the user specific actions
rightClickOnForward and rightClickOnBackward (see constructor
).public static final String TIMER_CMD
ActionEvent
given to the method
actionPerformed(ActionEvent)
of the user specific actions
forward and backward (see constructor
).public TimerControlPanel(Action forward, Action backward, Action reset)
TimerControlPanel
with the specified user
Action
objects. See class documentation for details.forward
- User specific action listening to clicks on
backward
- User specific action listening to clicks on
reset
- User specific action listening to clicks on
public TimerControlPanel(Action forward, Action backward, Action reset, Action rightClickOnForward, Action rightClickOnBackward)
TimerControlPanel
with the specified user
Action
objects. See class documentation for details.forward
- User specific action listening to clicks on
backward
- User specific action listening to clicks on
reset
- User specific action listening to clicks on
rightClickOnForward
- User specific action listening to a right mouse
click on rightClickOnBackward
- User specific action listening to a right mouse
click on public SharableTimer getTimer()
public int getTimerDelay()
public boolean isCoalesce()
SharableTimer.start(int, ActionListener[], boolean)
,
Timer.isCoalesce()
public void setCoalesce(boolean b)
b
- the new coalesce state for the internal TimerSharableTimer.start(int, ActionListener[], boolean)
,
Timer.setCoalesce(boolean)
public void setTimer(SharableTimer newTimer)
public void setTimerDelay(int newDelay)
newDelay
- The new delay between two timer events.