org.jdesktop.swingx
Class JXMultiThumbSlider<E>
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
org.jdesktop.swingx.JXMultiThumbSlider<E>
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable
public class JXMultiThumbSlider<E>
- extends JComponent
A slider which can have multiple control points or Thumbs
The thumbs each represent a value between the minimum and maximum values
of the slider. Thumbs can pass each other when being dragged. Thumbs have
no default visual representation. To customize the look of the thumbs and the
track behind the thumbs you must provide a ThumbRenderer and a TrackRenderer
implementation. To listen for changes to the thumbs you must provide an
implemention of ThumbDataListener.
TODOs:
move public inner classes (interfaces, etc) to subpackage
add min/maxvalue convenience methods to jxmultithumbslider
add plafs for windows, mac, and basic (if necessary)
make way to properly control the height.
hide the inner thumb component
- See Also:
- Serialized Form
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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 |
Methods inherited from class java.awt.Container |
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, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from class java.awt.Component |
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, hide, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
uiClassID
public static final String uiClassID
- See Also:
- Constant Field Values
JXMultiThumbSlider
public JXMultiThumbSlider()
- Creates a new instance of JMultiThumbSlider
getUI
public MultiThumbSliderUI getUI()
setUI
public void setUI(MultiThumbSliderUI ui)
updateUI
public void updateUI()
- Description copied from class:
javax.swing.JComponent
- Resets the UI property to a value from the current look and feel.
JComponent
subclasses must override this method
like this:
public void updateUI() {
setUI((SliderUI)UIManager.getUI(this);
}
- Overrides:
updateUI
in class JComponent
- See Also:
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
UIManager.getLookAndFeel()
,
UIManager.getUI(javax.swing.JComponent)
getUIClassID
public String getUIClassID()
- Returns the
UIDefaults
key used to
look up the name of the swing.plaf.ComponentUI
class that defines the look and feel
for this component. Most applications will never need to
call this method. Subclasses of JComponent
that support
pluggable look and feel should override this method to
return a UIDefaults
key that maps to the
ComponentUI
subclass that defines their look and feel.
- Overrides:
getUIClassID
in class JComponent
- Returns:
- the
UIDefaults
key for a
ComponentUI
subclass - See Also:
UIDefaults.getUI(javax.swing.JComponent)
paintComponent
protected void paintComponent(Graphics g)
- Description copied from class:
javax.swing.JComponent
- Calls the UI delegate's paint method, if the UI delegate
is non-
null
. We pass the delegate a copy of the
Graphics
object to protect the rest of the
paint code from irrevocable changes
(for example, Graphics.translate
).
If you override this in a subclass you should not make permanent
changes to the passed in Graphics
. For example, you
should not alter the clip Rectangle
or modify the
transform. If you need to do these operations you may find it
easier to create a new Graphics
from the passed in
Graphics
and manipulate it. Further, if you do not
invoker super's implementation you must honor the opaque property,
that is
if this component is opaque, you must completely fill in the background
in a non-opaque color. If you do not honor the opaque property you
will likely see visual artifacts.
The passed in Graphics
object might
have a transform other than the identify transform
installed on it. In this case, you might get
unexpected results if you cumulatively apply
another transform.
- Overrides:
paintComponent
in class JComponent
- Parameters:
g
- the Graphics
object to protect- See Also:
JComponent.paint(java.awt.Graphics)
,
ComponentUI
getThumbRenderer
public ThumbRenderer getThumbRenderer()
setThumbRenderer
public void setThumbRenderer(ThumbRenderer thumbRenderer)
getTrackRenderer
public TrackRenderer getTrackRenderer()
setTrackRenderer
public void setTrackRenderer(TrackRenderer trackRenderer)
getMinimumValue
public float getMinimumValue()
setMinimumValue
public void setMinimumValue(float minimumValue)
getMaximumValue
public float getMaximumValue()
setMaximumValue
public void setMaximumValue(float maximumValue)
setBounds
public void setBounds(int x,
int y,
int w,
int h)
- Description copied from class:
java.awt.Component
- Moves and resizes this component. The new location of the top-left
corner is specified by
x
and y
, and the
new size is specified by width
and height
.
- Overrides:
setBounds
in class Component
- Parameters:
x
- the new x-coordinate of this componenty
- the new y-coordinate of this componentw
- the new width
of this componenth
- the new height
of this
component- See Also:
Component.getBounds()
,
Component.setLocation(int, int)
,
Component.setLocation(Point)
,
Component.setSize(int, int)
,
Component.setSize(Dimension)
getSelectedThumb
public JComponent getSelectedThumb()
getSelectedIndex
public int getSelectedIndex()
getModel
public MultiThumbModel<E> getModel()
setModel
public void setModel(MultiThumbModel<E> model)
addMultiThumbListener
public void addMultiThumbListener(ThumbListener listener)