public class Slider extends Label implements ActionSource
The slider component serves both as a slider widget to allow users to select a value on a scale via touch/arrows and also to indicate progress. The slider defaults to percentage display but can represent any positive set of values.
Slider
is very versatile and can be used to represent things as diverse as the 5 star ranking UI
demonstrated below. Notice that for the UI to work correctly you need to enclose it in a layout that preserves
its preferred size like flow layout.
Slider can be used as a progress indicator for network operations when combined with the
SliderBridge
component:
BASELINE, BOTTOM, BRB_CENTER_OFFSET, BRB_CONSTANT_ASCENT, BRB_CONSTANT_DESCENT, BRB_OTHER, CENTER, CROSSHAIR_CURSOR, DEFAULT_CURSOR, DRAG_REGION_IMMEDIATELY_DRAG_X, DRAG_REGION_IMMEDIATELY_DRAG_XY, DRAG_REGION_IMMEDIATELY_DRAG_Y, DRAG_REGION_LIKELY_DRAG_X, DRAG_REGION_LIKELY_DRAG_XY, DRAG_REGION_LIKELY_DRAG_Y, DRAG_REGION_NOT_DRAGGABLE, DRAG_REGION_POSSIBLE_DRAG_X, DRAG_REGION_POSSIBLE_DRAG_XY, DRAG_REGION_POSSIBLE_DRAG_Y, E_RESIZE_CURSOR, HAND_CURSOR, LEFT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NW_RESIZE_CURSOR, RIGHT, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, TOP, W_RESIZE_CURSOR, WAIT_CURSOR
Constructor and Description |
---|
Slider()
The default constructor uses internal rendering to draw its state
|
Modifier and Type | Method and Description |
---|---|
void |
addActionListener(ActionListener l)
Action listeners give a more coarse event only when the user lifts the finger from the slider
|
void |
addDataChangedListener(DataChangedListener l)
Adds a listener to data changed events, notice that the status argument to the data change listener
shouldn't be relied upon.
|
boolean |
animate()
Allows the animation to reduce "repaint" calls when it returns false.
|
protected Dimension |
calcPreferredSize()
Return the size we would generally like for the component
|
static Slider |
createInfinite()
Creates an infinite progress slider
|
void |
deinitialize()
Invoked to indicate that the component initialization is being reversed
since the component was detached from the container hierarchy.
|
protected void |
fireClicked()
When working in 3 softbutton mode "fire" key (center softbutton) is sent to this method
in order to allow 3 button devices to work properly.
|
protected String |
formattedValue(int value)
Allows formatting the appearance of the progress when text is drawn on top
|
int |
getIncrements()
The increments when the user presses a key to the left/right/up/down etc.
|
int |
getMaxValue() |
int |
getMinValue() |
int |
getProgress()
Indicates the value of progress made
|
int |
getProgress(ActionEvent evt)
Gets the progress of the slider at the point where the provided ActionEvent
was triggered.
|
Style |
getSliderEmptySelectedStyle()
Returns the
Style used to paint the slider when its full and selected |
Style |
getSliderEmptyUnselectedStyle()
Returns the
Style used to paint the slider when its full |
Style |
getSliderFullSelectedStyle()
Returns the
Style used to paint the slider when its full and selected |
Style |
getSliderFullUnselectedStyle()
Returns the
Style used to paint the slider when its full |
Style |
getStyle()
Returns the current Component Style allowing code to draw the current component, you
should normally use getUnselected/Pressed/DisabledStyle() and not this method since
it will return different values based on component state.
|
Image |
getThumbImage()
The thumb image is drawn on top of the current progress
|
void |
initComponent()
Allows subclasses to bind functionality that relies on fully initialized and
"ready for action" component state
|
boolean |
isEditable()
Indicates the slider is modifyable
|
boolean |
isInfinite()
The infinite slider functionality is used to animate
progress for which there is no defined value.
|
boolean |
isRenderPercentageOnTop()
Indicates that the value of the slider should be rendered with a percentage sign
on top of the slider.
|
boolean |
isRenderValueOnTop() |
protected boolean |
isSelectableInteraction()
This method allows a component to indicate that it is interested in an "implicit" select
command to appear in the "fire" button when 3 softbuttons are defined in a device.
|
protected boolean |
isStickyDrag()
Returns true if the component is interested in receiving drag/pointer release events even
after the gesture exceeded its boundaries.
|
boolean |
isVertical()
Indicates the slider is vertical
|
void |
keyPressed(int code)
If this Component is focused, the key pressed event
will call this method
|
void |
keyReleased(int code)
If this Component is focused, the key released event
will call this method
|
void |
paintComponentBackground(Graphics g)
Paint the progress indicator
|
void |
pointerDragged(int x,
int y)
If this Component is focused, the pointer dragged event
will call this method
|
void |
pointerPressed(int x,
int y)
If this Component is focused, the pointer pressed event
will call this method
|
void |
pointerReleased(int x,
int y)
If this Component is focused, the pointer released event
will call this method
|
void |
refreshTheme(boolean merge)
Makes sure the component is up to date with the current theme, ONLY INVOKE THIS METHOD IF YOU CHANGED THE THEME!
|
void |
removeActionListener(ActionListener l)
Action listeners give a more coarse event only when the user lifts the finger from the slider
|
void |
removeDataChangedListener(DataChangedListener l)
Removes a listener from data changed events, notice that the status argument to the data change listener
shouldn't be relied upon.
|
void |
setEditable(boolean editable)
Indicates the slider is modifyable
|
void |
setIncrements(int increments)
The increments when the user presses a key to the left/right/up/down etc.
|
void |
setInfinite(boolean i)
Activates/disables the infinite slider functionality used to animate
progress for which there is no defined value.
|
void |
setMaxValue(int maxValue) |
void |
setMinValue(int minValue) |
void |
setProgress(int value)
Indicates the value of progress made, this method is thread safe and
can be invoked from any thread although discretion should still be kept
so one thread doesn't regress progress made by another thread...
|
void |
setRenderPercentageOnTop(boolean renderPercentageOnTop)
Indicates that the value of the slider should be rendered with a percentage sign
on top of the slider.
|
void |
setRenderValueOnTop(boolean renderValueOnTop) |
void |
setThumbImage(Image thumbImage)
The thumb image is drawn on top of the current progress
|
void |
setUIID(String id)
This method sets the Component the Unique identifier.
|
void |
setVertical(boolean vertical)
Indicates the slider is vertical
|
protected boolean |
shouldBlockSideSwipe()
A component that might need side swipe such as the slider
could block it from being used for some other purpose when
on top of said component.
|
bindProperty, getAlignment, getBadgeStyleComponent, getBadgeText, getBaseline, getBaselineResizeBehavior, getBindablePropertyNames, getBindablePropertyTypes, getBoundPropertyValue, getDefaultGap, getFontIcon, getFontIconSize, getGap, getIcon, getIconFont, getIconStyleComponent, getIconUIID, getMask, getMaskedIcon, getMaskName, getMaterialIcon, getMaterialIconSize, getMaxAutoSize, getMinAutoSize, getPropertyNames, getPropertyTypeNames, getPropertyTypes, getPropertyValue, getShiftMillimeters, getShiftMillimetersF, getShiftText, getStringWidth, getText, getTextPosition, getTextSelectionSupport, getVerticalAlignment, initLaf, initUnselectedStyle, isAutoSizeMode, isDefaultTickerEnabled, isEndsWith3Points, isLegacyRenderer, isShouldLocalize, isShowEvenIfBlank, isTextSelectionEnabled, isTickerEnabled, isTickerRunning, laidOut, paint, paramString, setAlignment, setAutoSizeMode, setBadgeText, setBadgeUIID, setBoundPropertyValue, setDefaultGap, setDefaultTickerEnabled, setEndsWith3Points, setFontIcon, setFontIcon, setFontIcon, setGap, setIcon, setIconUIID, setLegacyRenderer, setMask, setMaskName, setMaterialIcon, setMaterialIcon, setMaxAutoSize, setMinAutoSize, setPropertyValue, setShiftMillimeters, setShiftMillimeters, setShiftText, setShouldLocalize, setShowEvenIfBlank, setText, setTextPosition, setTextSelectionEnabled, setTickerEnabled, setVerticalAlignment, shouldTickerStart, startTicker, startTicker, stopTicker, styleChanged, unbindProperty
addDragFinishedListener, addDragOverListener, addDropListener, addFocusListener, addLongPressListener, addPointerDraggedListener, addPointerPressedListener, addPointerReleasedListener, addPullToRefresh, addScrollListener, addStateChangeListener, blocksSideSwipe, calcScrollSize, cancelRepaints, clearClientProperties, contains, containsOrOwns, createStyleAnimation, deinitializeCustomStyle, dragEnter, dragExit, dragFinished, draggingOver, dragInitiated, drawDraggedImage, drop, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getAllStyles, getAnimationManager, getBorder, getBottomGap, getBounds, getBounds, getClientProperty, getCloudBoundProperty, getCloudDestinationProperty, getComponentForm, getComponentState, getCursor, getDefaultDragTransparency, getDirtyRegion, getDisabledStyle, getDraggedx, getDraggedy, getDragImage, getDragRegionStatus, getDragSpeed, getDragTransparency, getEditingDelegate, getGridPosX, getGridPosY, getHeight, getInlineAllStyles, getInlineDisabledStyles, getInlinePressedStyles, getInlineSelectedStyles, getInlineStylesTheme, getInlineUnselectedStyles, getInnerHeight, getInnerPreferredH, getInnerPreferredW, getInnerWidth, getInnerX, getInnerY, getLabelForComponent, getName, getNativeOverlay, getNextFocusDown, getNextFocusLeft, getNextFocusRight, getNextFocusUp, getOuterHeight, getOuterPreferredH, getOuterPreferredW, getOuterWidth, getOuterX, getOuterY, getOwner, getParent, getPreferredH, getPreferredSize, getPreferredSizeStr, getPreferredTabIndex, getPreferredW, getPressedStyle, getSameHeight, getSameWidth, getScrollable, getScrollAnimationSpeed, getScrollDimension, getScrollOpacity, getScrollOpacityChangeSpeed, getScrollX, getScrollY, getSelectCommandText, getSelectedRect, getSelectedStyle, getSideGap, getTabIndex, getTensileLength, getTooltip, getUIID, getUIManager, getUnselectedStyle, getVisibleBounds, getVisibleBounds, getWidth, getX, getY, growShrink, handlesInput, hasFixedPreferredSize, hasFocus, hideNativeOverlay, initCustomStyle, initDisabledStyle, initPressedStyle, initSelectedStyle, installDefaultPainter, isAlwaysTensile, isBlockLead, isCellRenderer, isChildOf, isDragActivated, isDragAndDropOperation, isDraggable, isDragRegion, isDropTarget, isEditing, isEnabled, isFlatten, isFocusable, isGrabsPointerEvents, isHidden, isHidden, isHideInLandscape, isHideInPortrait, isIgnorePointerEvents, isInClippingRegion, isInitialized, isOpaque, isOwnedBy, isPinchBlocksDragAndDrop, isRippleEffect, isRTL, isScrollable, isScrollableX, isScrollableY, isScrollVisible, isSetCursorSupported, isSmoothScrolling, isSnapToGrid, isTactileTouch, isTactileTouch, isTensileDragEnabled, isTraversable, isVisible, keyRepeated, longKeyPress, longPointerPress, onScrollX, onScrollY, paintBackground, paintBackgrounds, paintBorder, paintBorderBackground, paintComponent, paintComponent, paintIntersectingComponentsAbove, paintLock, paintLockRelease, paintRippleOverlay, paintScrollbars, paintScrollbarX, paintScrollbarY, paintShadows, parsePreferredSize, pinch, pinch, pinchReleased, pointerDragged, pointerHover, pointerHoverPressed, pointerHoverReleased, pointerPressed, pointerReleased, putClientProperty, refreshTheme, refreshTheme, remove, removeDragFinishedListener, removeDragOverListener, removeDropListener, removeFocusListener, removeLongPressListener, removePointerDraggedListener, removePointerPressedListener, removePointerReleasedListener, removeScrollListener, removeStateChangeListener, repaint, repaint, requestFocus, resetFocusable, respondsToPointerEvents, scrollRectToVisible, scrollRectToVisible, setAlwaysTensile, setBlockLead, setCellRenderer, setCloudBoundProperty, setCloudDestinationProperty, setComponentState, setCursor, setDefaultDragTransparency, setDirtyRegion, setDisabledStyle, setDraggable, setDragTransparency, setDropTarget, setEditingDelegate, setEnabled, setFlatten, setFocus, setFocusable, setGrabsPointerEvents, setHandlesInput, setHeight, setHidden, setHidden, setHideInLandscape, setHideInPortrait, setIgnorePointerEvents, setInitialized, setInlineAllStyles, setInlineDisabledStyles, setInlinePressedStyles, setInlineSelectedStyles, setInlineStylesTheme, setInlineUnselectedStyles, setIsScrollVisible, setLabelForComponent, setName, setNextFocusDown, setNextFocusLeft, setNextFocusRight, setNextFocusUp, setOpaque, setOwner, setPinchBlocksDragAndDrop, setPreferredH, setPreferredSize, setPreferredSizeStr, setPreferredTabIndex, setPreferredW, setPressedStyle, setRippleEffect, setRTL, setSameHeight, setSameSize, setSameWidth, setScrollAnimationSpeed, setScrollOpacityChangeSpeed, setScrollSize, setScrollVisible, setScrollX, setScrollY, setSelectCommandText, setSelectedStyle, setShouldCalcPreferredSize, setSize, setSmoothScrolling, setSnapToGrid, setTabIndex, setTactileTouch, setTensileDragEnabled, setTensileLength, setTooltip, setTraversable, setUIID, setUnselectedStyle, setVisible, setWidth, setX, setY, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, shouldRenderComponentSelection, showNativeOverlay, startEditingAsync, stopEditing, stripMarginAndPadding, toImage, toString, updateNativeOverlay, visibleBoundsContains
public Slider()
public void setUIID(String id)
protected boolean isStickyDrag()
isStickyDrag
in class Component
public void initComponent()
initComponent
in class Component
public void deinitialize()
deinitialize
in class Component
public boolean animate()
Display
class.public boolean isInfinite()
public void setInfinite(boolean i)
i
- true for infinite progresspublic static Slider createInfinite()
public void refreshTheme(boolean merge)
refreshTheme
in class Label
merge
- indicates if the current styles should be merged with the new stylespublic int getProgress()
public int getProgress(ActionEvent evt)
evt
- An ActionEvent that originated from this slider.public void setProgress(int value)
value
- new value for progressprotected String formattedValue(int value)
value
- the value of the sliderpublic Style getSliderFullUnselectedStyle()
Style
used to paint the slider when its fullpublic Style getSliderFullSelectedStyle()
Style
used to paint the slider when its full and selectedpublic Style getSliderEmptyUnselectedStyle()
Style
used to paint the slider when its fullpublic Style getSliderEmptySelectedStyle()
Style
used to paint the slider when its full and selectedpublic Style getStyle()
protected Dimension calcPreferredSize()
calcPreferredSize
in class Label
public void paintComponentBackground(Graphics g)
g
- the component graphicspublic boolean isVertical()
public void setVertical(boolean vertical)
vertical
- true if the slider is verticalpublic boolean isEditable()
isEditable
in interface Editable
isEditable
in class Component
Component.getEditingDelegate()
,
Component.setEditingDelegate(com.codename1.ui.Editable)
,
Component.isEditing()
,
Component.startEditingAsync()
,
Component.stopEditing(java.lang.Runnable)
public void setEditable(boolean editable)
editable
- true if the slider is editablepublic void pointerPressed(int x, int y)
Component
pointerPressed
in class Component
x
- the pointer x coordinatey
- the pointer y coordinatepublic void pointerDragged(int x, int y)
pointerDragged
in class Component
x
- the pointer x coordinatey
- the pointer y coordinateprotected void fireClicked()
fireClicked
in class Component
protected boolean isSelectableInteraction()
isSelectableInteraction
in class Component
public void pointerReleased(int x, int y)
pointerReleased
in class Component
x
- the pointer x coordinatey
- the pointer y coordinatepublic void keyReleased(int code)
keyReleased
in class Component
code
- the key code value to indicate a physical key.public void keyPressed(int code)
keyPressed
in class Component
code
- the key code value to indicate a physical key.public int getIncrements()
public void setIncrements(int increments)
increments
- increment valuepublic void addDataChangedListener(DataChangedListener l)
l
- new listenerpublic void removeDataChangedListener(DataChangedListener l)
l
- listener to removepublic void addActionListener(ActionListener l)
addActionListener
in interface ActionSource
l
- the listenerpublic void removeActionListener(ActionListener l)
removeActionListener
in interface ActionSource
l
- the listenerpublic boolean isRenderPercentageOnTop()
public void setRenderPercentageOnTop(boolean renderPercentageOnTop)
renderPercentageOnTop
- true to render percentagespublic boolean isRenderValueOnTop()
public void setRenderValueOnTop(boolean renderValueOnTop)
renderValueOnTop
- the renderValueOnTop to setpublic int getMaxValue()
public void setMaxValue(int maxValue)
maxValue
- the maxValue to setpublic int getMinValue()
public void setMinValue(int minValue)
minValue
- the minValue to setpublic Image getThumbImage()
public void setThumbImage(Image thumbImage)
thumbImage
- the thumbImage to setprotected boolean shouldBlockSideSwipe()
shouldBlockSideSwipe
in class Component