javax.swing

Class JSlider

Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Serializable, SwingConstants

public class JSlider
extends JComponent
implements SwingConstants, Accessible, ImageObserver, MenuContainer, Serializable

A visual component that allows selection of a value within a range by adjusting a thumb in a track. The values for the minimum, maximum, extent and value are stored in a DefaultBoundedRangeModel.

A JSlider component has the following properties:

Property Stored in Bound?
extent model no
inverted slider yes
labelTable slider yes
majorTickSpacing slider yes
maximum model yes
minimum model yes
minorTickSpacing slider yes
model slider yes
orientation slider yes
paintLabels slider yes
paintTicks slider yes
snapToTicks slider yes
value model no
valueIsAdjusting model no

The various behavioural aspects of these properties follows:

See Also:
Serialized Form

Nested Class Summary

protected class
JSlider.AccessibleJSlider
Provides the accessibility features for the JSlider component.

Nested classes/interfaces inherited from class javax.swing.JComponent

JComponent.AccessibleJComponent

Nested classes/interfaces inherited from class java.awt.Container

Container.AccessibleAWTContainer

Nested classes/interfaces inherited from class java.awt.Component

Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy

Field Summary

protected ChangeEvent
changeEvent
The change event that is passed to all listeners of this slider.
protected ChangeListener
changeListener
The listener that monitors the slider's model and forwards events to the slider's listeners (see createChangeListener()).
protected int
majorTickSpacing
The space/distance between major ticks.
protected int
minorTickSpacing
The space/distance between minor ticks.
protected int
orientation
The orientation (horizontal or vertical) of the slider.
protected BoundedRangeModel
sliderModel
The model used to store the slider's range and current value.
protected boolean
snapToTicks
Whether the slider snaps its values to ticks.

Fields inherited from class javax.swing.JComponent

TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, accessibleContext, listenerList, ui

Fields inherited from class java.awt.Component

BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

Fields inherited from interface java.awt.image.ImageObserver

ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH

Fields inherited from interface javax.swing.SwingConstants

BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST

Constructor Summary

JSlider()
Creates a new horizontal JSlider instance with a minimum of 0, a maximum of 100, and a value of 50.
JSlider(int orientation)
Creates a new JSlider instance with the given orientation and a minimum of 0, a maximum of 100, and a value of 50.
JSlider(int minimum, int maximum)
Creates a new horizontal JSlider instance with the given maximum and minimum and a value that is halfway between the minimum and the maximum.
JSlider(int minimum, int maximum, int value)
Creates a new horizontal JSlider instance with the given minimum, maximum, and value.
JSlider(int orientation, int minimum, int maximum, int value)
Creates a new JSlider instance with the given orientation, minimum, maximum, and value.
JSlider(BoundedRangeModel model)
Creates a new horizontal JSlider instance with the given model.

Method Summary

void
addChangeListener(ChangeListener listener)
Registers a listener with the slider so that it will receive ChangeEvent notifications.
protected ChangeListener
createChangeListener()
Creates a ChangeListener that is added to the slider's model and forwards change events generated by the model to the listeners that are registered with the JSlider (by calling the fireStateChanged() method).
Hashtable<K,V>
createStandardLabels(int increment)
Creates a hashtable of (Integer, JLabel) pairs that can be used as a label table for this slider.
Hashtable<K,V>
createStandardLabels(int increment, int start)
Creates a hashtable of (Integer, JLabel) pairs that can be used as a label table for this slider.
protected void
fireStateChanged()
Sends a ChangeEvent to all registered listeners, with this slider as the source.
AccessibleContext
getAccessibleContext()
Returns the object that provides accessibility features for this JSlider component.
ChangeListener[]
getChangeListeners()
Returns an array containing all the ChangeListener instances registered with this slider.
int
getExtent()
Returns the slider's extent value, obtained from the slider's model.
boolean
getInverted()
Returns the flag that controls whether or not the value scale for the slider is inverted (the default value is false).
Dictionary<K,V>
getLabelTable()
Returns the label table for the slider.
int
getMajorTickSpacing()
Returns the distance between major tick marks along the slider's value scale.
int
getMaximum()
Returns the slider's maximum value (obtained from the slider's model).
int
getMinimum()
Returns the minimum value of the slider (from the slider's model).
int
getMinorTickSpacing()
Returns the distance between minor tick marks along the slider's value scale.
BoundedRangeModel
getModel()
Returns the slider's model, which stores the minimum, maximum and current values.
int
getOrientation()
Returns the orientation of the slider, either SwingConstants.HORIZONTAL or SwingConstants.VERTICAL.
boolean
getPaintLabels()
Returns the flag that controls whether or not labels are painted for the tick marks along the slider.
boolean
getPaintTicks()
Returns the flag that controls whether or not tick marks are painted along the slider's value scale.
boolean
getPaintTrack()
Returns the flag that controls whether or not the track is painted.
boolean
getSnapToTicks()
Returns the flag that controls whether the slider thumb will snap to ticks.
SliderUI
getUI()
Returns the slider's UI delegate.
String
getUIClassID()
Returns the suffix ("SliderUI" in this case) used to determine the class name for a UI delegate that can provide the look and feel for a JSlider.
int
getValue()
Returns the slider's value (from the slider's model).
boolean
getValueIsAdjusting()
Returns the valueIsAdjusting flag from the slider's model.
protected String
paramString()
Returns an implementation-dependent string describing the attributes of this JSlider.
void
removeChangeListener(ChangeListener listener)
Removes a listener from this slider so that it will no longer receive ChangeEvent notifications from the slider.
void
setExtent(int extent)
Sets the slider's extent value and sends a ChangeEvent to all registered listeners.
void
setInverted(boolean inverted)
Sets the flag that controls whether or not the value scale for the slider is inverted and, if the new flag value is different to the old flag value, sends a PropertyChangeEvent to all registered listeners.
void
setLabelTable(Dictionary<K,V> table)
Sets the table of labels for the slider and sends a PropertyChangeEvent (with the property name "labelTable") to all registered listeners.
void
setMajorTickSpacing(int spacing)
Sets the distance between major tick marks along the slider's value scale, and sends a PropertyChangeEvent (with the property name "majorTickSpacing") to all registered listeners.
void
setMaximum(int maximum)
Sets the maximum value of the slider and fires a PropertyChangeEvent (with the property name "maximum") to all registered listeners.
void
setMinimum(int minimum)
Sets the minimum value of the slider and fires a PropertyChangeEvent (with the property name "minimum") to all registered listeners.
void
setMinorTickSpacing(int spacing)
Sets the distance between minor tick marks along the slider's value scale, and sends a PropertyChangeEvent (with the property name "minorTickSpacing") to all registered listeners.
void
setModel(BoundedRangeModel model)
Sets the slider's model and sends a PropertyChangeEvent (with the property name "model") to all registered listeners.
void
setOrientation(int orientation)
Sets the orientation for the slider and sends a PropertyChangeEvent (with the property name "orientation") to all registered listeners.
void
setPaintLabels(boolean paint)
Sets the flag that controls whether or not labels are painted for the tick marks along the slider and sends a PropertyChangeEvent (with the property name "paintLabels") to all registered listeners.
void
setPaintTicks(boolean paint)
Sets the flag that controls whether or not tick marks are painted along the slider's value scale, and sends a PropertyChangeEvent (with the property name "paintTicks") to all registered listeners.
void
setPaintTrack(boolean paint)
Sets the flag that controls whether or not the track is painted, and sends a PropertyChangeEvent (for the "paintTrack" property) to all registered listeners.
void
setSnapToTicks(boolean snap)
Sets the flag that controls whether the slider thumb will snap to ticks and sends a PropertyChangeEvent (with the property name 'snapToTicks') to all registered listeners.
void
setUI(SliderUI ui)
Sets the slider's UI delegate.
void
setValue(int value)
Sets the slider's value and sends a ChangeEvent to all registered listeners.
void
setValueIsAdjusting(boolean adjusting)
Sets the valueIsAdjusting flag in the slider's model, and sends a ChangeEvent to all registered listeners.
protected void
updateLabelUIs()
Resets the UI delegates for the labels in the labelTable to the default for the current look and feel.
void
updateUI()
Sets this slider's UI delegate to the default (obtained from the UIManager) for the current look and feel.

Methods inherited from class javax.swing.JComponent

addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, 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, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI

Methods inherited from class java.awt.Container

add, add, add, add, add, addContainerListener, addImpl, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, extends EventListener> T[] getListeners, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponentZOrder, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree

Methods inherited from class java.awt.Component

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFocusable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFocusable, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

changeEvent

protected ChangeEvent changeEvent
The change event that is passed to all listeners of this slider.

changeListener

protected ChangeListener changeListener
The listener that monitors the slider's model and forwards events to the slider's listeners (see createChangeListener()).

majorTickSpacing

protected int majorTickSpacing
The space/distance between major ticks.

minorTickSpacing

protected int minorTickSpacing
The space/distance between minor ticks.

orientation

protected int orientation
The orientation (horizontal or vertical) of the slider.

sliderModel

protected BoundedRangeModel sliderModel
The model used to store the slider's range and current value.

snapToTicks

protected boolean snapToTicks
Whether the slider snaps its values to ticks.

Constructor Details

JSlider

public JSlider()
Creates a new horizontal JSlider instance with a minimum of 0, a maximum of 100, and a value of 50.

JSlider

public JSlider(int orientation)
Creates a new JSlider instance with the given orientation and a minimum of 0, a maximum of 100, and a value of 50.
Parameters:
orientation - The orientation of the slider (SwingConstants.HORIZONTAL or SwingConstants.VERTICAL).
Throws:
IllegalArgumentException - if orientation is not one of the specified values.

JSlider

public JSlider(int minimum,
               int maximum)
Creates a new horizontal JSlider instance with the given maximum and minimum and a value that is halfway between the minimum and the maximum.
Parameters:
minimum - The minimum value.
maximum - The maximum value.
Throws:
IllegalArgumentException - if minimum is greater than maximum.

JSlider

public JSlider(int minimum,
               int maximum,
               int value)
Creates a new horizontal JSlider instance with the given minimum, maximum, and value.
Parameters:
minimum - The minimum value.
maximum - The maximum value.
value - The initial value.
Throws:
IllegalArgumentException - if value is not in the specified range.
IllegalArgumentException - if minimum is greater than maximum.

JSlider

public JSlider(int orientation,
               int minimum,
               int maximum,
               int value)
Creates a new JSlider instance with the given orientation, minimum, maximum, and value.
Parameters:
orientation - The orientation of the slider (SwingConstants.HORIZONTAL or SwingConstants.VERTICAL).
minimum - The minimum value of the JSlider.
maximum - The maximum value of the JSlider.
value - The initial value of the JSlider.
Throws:
IllegalArgumentException - if orientation is not one of the specified values.
IllegalArgumentException - if value is not in the specified range.
IllegalArgumentException - if minimum is greater than maximum.

JSlider

public JSlider(BoundedRangeModel model)
Creates a new horizontal JSlider instance with the given model.
Parameters:
model - The model (null not permitted).
Throws:
NullPointerException - if model is null.

Method Details

addChangeListener

public void addChangeListener(ChangeListener listener)
Registers a listener with the slider so that it will receive ChangeEvent notifications. Note that change events generated by the slider's model will be forwarded automatically to the slider's listeners.
Parameters:
listener - the listener to register.

createChangeListener

protected ChangeListener createChangeListener()
Creates a ChangeListener that is added to the slider's model and forwards change events generated by the model to the listeners that are registered with the JSlider (by calling the fireStateChanged() method).
Returns:
A new listener.

createStandardLabels

public Hashtable<K,V> createStandardLabels(int increment)
Creates a hashtable of (Integer, JLabel) pairs that can be used as a label table for this slider. The labels will start from the slider's minimum and increase by the increment. Each label will have a text string indicating its integer value.
Parameters:
increment - The increment between labels (must be > 0).
Returns:
A hashtable containing the labels.
Throws:
IllegalArgumentException - if increment is not greater than zero.

createStandardLabels

public Hashtable<K,V> createStandardLabels(int increment,
                                      int start)
Creates a hashtable of (Integer, JLabel) pairs that can be used as a label table for this slider. The labels will start from the given start value and increase by the increment. Each label will have a text string indicating its integer value.
Parameters:
increment - The increment between labels (must be > 0).
start - The value to start from.
Returns:
A hashtable with the labels and their keys.
Throws:
IllegalArgumentException - if increment is not greater than zero, or start is not within the range of the model.

fireStateChanged

protected void fireStateChanged()
Sends a ChangeEvent to all registered listeners, with this slider as the source.

getAccessibleContext

public AccessibleContext getAccessibleContext()
Returns the object that provides accessibility features for this JSlider component.
Specified by:
getAccessibleContext in interface Accessible
Overrides:
getAccessibleContext in interface JComponent
Returns:
The accessible context (an instance of JSlider.AccessibleJSlider).

getChangeListeners

public ChangeListener[] getChangeListeners()
Returns an array containing all the ChangeListener instances registered with this slider. If no listeners are registered, this method returns an empty array.
Returns:
An array array containing all the ChangeListener instances registered with this slider (possibly empty, but never null).

getExtent

public int getExtent()
Returns the slider's extent value, obtained from the slider's model.
Returns:
The extent value.

getInverted

public boolean getInverted()
Returns the flag that controls whether or not the value scale for the slider is inverted (the default value is false).
Returns:
The flag that controls whether or not the value scale for the slider is inverted.

getLabelTable

public Dictionary<K,V> getLabelTable()
Returns the label table for the slider.
Returns:
The label table for the slider (possibly null).