Class JXMultiThumbSlider<E>

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

    @JavaBean
    public class JXMultiThumbSlider<E>
    extends javax.swing.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 implementation of ThumbDataListener. TODOs: 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
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  JXMultiThumbSlider.MultiThumbMouseListener  
      private static class  JXMultiThumbSlider.ThumbComp  
      private class  JXMultiThumbSlider.ThumbHandler  
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Constructor Summary

      Constructors 
      Constructor Description
      JXMultiThumbSlider()
      Creates a new instance of JMultiThumbSlider
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addMultiThumbListener​(ThumbListener listener)  
      private void clipThumbPosition​(JXMultiThumbSlider.ThumbComp thumb)  
      float getMaximumValue()  
      float getMinimumValue()  
      MultiThumbModel<E> getModel()  
      int getSelectedIndex()  
      javax.swing.JComponent getSelectedThumb()  
      private int getThumbIndex​(JXMultiThumbSlider.ThumbComp thumb)  
      ThumbRenderer getThumbRenderer()  
      private float getThumbValue​(int thumbIndex)  
      private float getThumbValue​(JXMultiThumbSlider.ThumbComp thumb)  
      TrackRenderer getTrackRenderer()  
      MultiThumbSliderUI getUI()  
      java.lang.String getUIClassID()
      protected void paintComponent​(java.awt.Graphics g)  
      private void paintRange​(java.awt.Graphics2D g)  
      private void recalc()  
      void setBounds​(int x, int y, int w, int h)  
      void setMaximumValue​(float maximumValue)  
      void setMinimumValue​(float minimumValue)  
      void setModel​(MultiThumbModel<E> model)  
      private void setThumbPositionByX​(JXMultiThumbSlider.ThumbComp selected)  
      void setThumbRenderer​(ThumbRenderer thumbRenderer)  
      private void setThumbXByPosition​(JXMultiThumbSlider.ThumbComp thumb, float pos)  
      void setTrackRenderer​(TrackRenderer trackRenderer)  
      void setUI​(MultiThumbSliderUI ui)  
      void updateUI()  
      • Methods inherited from class javax.swing.JComponent

        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, 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, 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, getAccessibleContext, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • JXMultiThumbSlider

        public JXMultiThumbSlider()
        Creates a new instance of JMultiThumbSlider
    • Method Detail

      • getUIClassID

        public java.lang.String getUIClassID()
        Overrides:
        getUIClassID in class javax.swing.JComponent
      • getUI

        public MultiThumbSliderUI getUI()
        Overrides:
        getUI in class javax.swing.JComponent
      • updateUI

        public void updateUI()
        Overrides:
        updateUI in class javax.swing.JComponent
      • paintComponent

        protected void paintComponent​(java.awt.Graphics g)
        Overrides:
        paintComponent in class javax.swing.JComponent
      • paintRange

        private void paintRange​(java.awt.Graphics2D g)
      • getThumbValue

        private float getThumbValue​(int thumbIndex)
      • setThumbRenderer

        public void setThumbRenderer​(ThumbRenderer thumbRenderer)
      • 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)
      • recalc

        private void recalc()
      • setBounds

        public void setBounds​(int x,
                              int y,
                              int w,
                              int h)
        Overrides:
        setBounds in class java.awt.Component
      • getSelectedThumb

        public javax.swing.JComponent getSelectedThumb()
      • getSelectedIndex

        public int getSelectedIndex()
      • addMultiThumbListener

        public void addMultiThumbListener​(ThumbListener listener)