- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.SliderUI
-
- javax.swing.plaf.basic.BasicSliderUI
-
- Direct Known Subclasses:
MetalSliderUI
,SynthSliderUI
public class BasicSliderUI extends SliderUI
A Basic L&F implementation of SliderUI.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
BasicSliderUI.ActionScroller
As of Java 2 platform v1.3 this undocumented class is no longer used.class
BasicSliderUI.ChangeHandler
Data model listener.class
BasicSliderUI.ComponentHandler
Listener for resizing events.class
BasicSliderUI.FocusHandler
Focus-change listener.class
BasicSliderUI.PropertyChangeHandler
A property change handler.class
BasicSliderUI.ScrollListener
Scroll-event listener.class
BasicSliderUI.TrackListener
Track mouse movements.
-
Field Summary
Fields Modifier and Type Field Description protected ChangeListener
changeListener
Change listenerprotected ComponentListener
componentListener
Component listenerprotected Rectangle
contentRect
Content rectangleprotected Insets
focusInsets
Focus insetsprotected FocusListener
focusListener
Focus listenerprotected Rectangle
focusRect
Focus rectangleprotected Insets
insetCache
Inset cacheprotected Rectangle
labelRect
Label rectangleprotected boolean
leftToRightCache
Left-to-right cachestatic int
MAX_SCROLL
Maximum scrollstatic int
MIN_SCROLL
Minimum scrollstatic int
NEGATIVE_SCROLL
Negative scrollstatic int
POSITIVE_SCROLL
Positive scrollprotected PropertyChangeListener
propertyChangeListener
Property chane listenerprotected BasicSliderUI.ScrollListener
scrollListener
Scroll listenerprotected Timer
scrollTimer
Scroll timerprotected JSlider
slider
Sliderprotected Rectangle
thumbRect
Thumb rectangleprotected Rectangle
tickRect
Tick rectangleprotected int
trackBuffer
The distance that the track is from the side of the controlprotected BasicSliderUI.TrackListener
trackListener
Track listenerprotected Rectangle
trackRect
Track rectangle
-
Constructor Summary
Constructors Constructor Description BasicSliderUI(JSlider b)
Constructs aBasicSliderUI
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
calculateContentRect()
Calculates the content rectangle.protected void
calculateFocusRect()
Calculates the focus rectangle.protected void
calculateGeometry()
Calculates the geometry.protected void
calculateLabelRect()
Calculates the label rectangle.protected void
calculateThumbLocation()
Calculates the thumb location.protected void
calculateThumbSize()
Calculates the thumb size rectangle.protected void
calculateTickRect()
Calculates the tick rectangle.protected void
calculateTrackBuffer()
Calculates the track buffer.protected void
calculateTrackRect()
Calculates the track rectangle.protected ChangeListener
createChangeListener(JSlider slider)
Creates a change listener.protected ComponentListener
createComponentListener(JSlider slider)
Creates a composite listener.protected FocusListener
createFocusListener(JSlider slider)
Creates a focus listener.protected PropertyChangeListener
createPropertyChangeListener(JSlider slider)
Creates a property change listener.protected BasicSliderUI.ScrollListener
createScrollListener(JSlider slider)
Creates a scroll listener.protected BasicSliderUI.TrackListener
createTrackListener(JSlider slider)
Creates a track listener.static ComponentUI
createUI(JComponent b)
Creates a UI.protected boolean
drawInverted()
Draws inverted.int
getBaseline(JComponent c, int width, int height)
Returns the baseline.Component.BaselineResizeBehavior
getBaselineResizeBehavior(JComponent c)
Returns an enum indicating how the baseline of the component changes as the size changes.protected Color
getFocusColor()
Returns the focus color.protected int
getHeightOfHighValueLabel()
Returns the height of the highest value label.protected int
getHeightOfLowValueLabel()
Returns the height of the lowest value label.protected int
getHeightOfTallestLabel()
Returns the height of the tallest label.protected Integer
getHighestValue()
Returns the biggest value that has an entry in the label table.protected Component
getHighestValueLabel()
Returns the label that corresponds to the lowest slider value in the label table.protected Color
getHighlightColor()
Returns the highlight color.protected Integer
getLowestValue()
Returns the smallest value that has an entry in the label table.protected Component
getLowestValueLabel()
Returns the label that corresponds to the highest slider value in the label table.Dimension
getMaximumSize(JComponent c)
Returns the maximum size.Dimension
getMinimumHorizontalSize()
Returns the minimum horizontal size.Dimension
getMinimumSize(JComponent c)
Returns the minimum size.Dimension
getMinimumVerticalSize()
Returns the minimum vertical size.Dimension
getPreferredHorizontalSize()
Returns the preferred horizontal size.Dimension
getPreferredSize(JComponent c)
Returns the preferred size.Dimension
getPreferredVerticalSize()
Returns the preferred vertical size.protected Color
getShadowColor()
Returns the shadow color.protected Dimension
getThumbSize()
Returns the thumb size.protected int
getTickLength()
Gets the height of the tick area for horizontal sliders and the width of the tick area for vertical sliders.protected int
getWidthOfHighValueLabel()
Returns the width of the highest value label.protected int
getWidthOfLowValueLabel()
Returns the width of the lowest value label.protected int
getWidthOfWidestLabel()
Returns the width of the widest label.protected void
installDefaults(JSlider slider)
Installs the defaults.protected void
installKeyboardActions(JSlider slider)
Installs keyboard actions.protected void
installListeners(JSlider slider)
Installs listeners.void
installUI(JComponent c)
Installs a UI.protected boolean
isDragging()
Returns true if the user is dragging the slider.protected boolean
labelsHaveSameBaselines()
Returns true if all the labels from the label table have the same baseline.void
paint(Graphics g, JComponent c)
Paints the specified component appropriately for the look and feel.void
paintFocus(Graphics g)
Paints focus.protected void
paintHorizontalLabel(Graphics g, int value, Component label)
Called for every label in the label table.void
paintLabels(Graphics g)
Paints the labels.protected void
paintMajorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)
Paints major tick for horizontal slider.protected void
paintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)
Paints major tick for vertical slider.protected void
paintMinorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)
Paints minor tick for horizontal slider.protected void
paintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)
Paints minor tick for vertical slider.void
paintThumb(Graphics g)
Paints the thumb.void
paintTicks(Graphics g)
Paints ticks.void
paintTrack(Graphics g)
Paints track.protected void
paintVerticalLabel(Graphics g, int value, Component label)
Called for every label in the label table.protected void
recalculateIfInsetsChanged()
Recalculates if the insets have changed.protected void
recalculateIfOrientationChanged()
Recalculates if the orientation has changed.void
scrollByBlock(int direction)
Scrolls by block.void
scrollByUnit(int direction)
Scrolls by unit.protected void
scrollDueToClickInTrack(int dir)
This function is called when a mousePressed was detected in the track, not in the thumb.void
setThumbLocation(int x, int y)
Sets the thumb location.protected void
uninstallDefaults(JSlider slider)
Uninstalls the defaults.protected void
uninstallKeyboardActions(JSlider slider)
Uninstalls keyboard actions.protected void
uninstallListeners(JSlider slider)
Uninstalls listeners.void
uninstallUI(JComponent c)
Uninstalls a UI.int
valueForXPosition(int xPos)
Returns the value at the x position.int
valueForYPosition(int yPos)
Returns the value at the y position.protected int
xPositionForValue(int value)
Returns the x position for a value.protected int
yPositionForValue(int value)
Returns the y position for a value.protected int
yPositionForValue(int value, int trackY, int trackHeight)
Returns the y location for the specified value.-
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
-
-
-
-
Field Detail
-
POSITIVE_SCROLL
public static final int POSITIVE_SCROLL
Positive scroll- See Also:
- Constant Field Values
-
NEGATIVE_SCROLL
public static final int NEGATIVE_SCROLL
Negative scroll- See Also:
- Constant Field Values
-
MIN_SCROLL
public static final int MIN_SCROLL
Minimum scroll- See Also:
- Constant Field Values
-
MAX_SCROLL
public static final int MAX_SCROLL
Maximum scroll- See Also:
- Constant Field Values
-
scrollTimer
protected Timer scrollTimer
Scroll timer
-
slider
protected JSlider slider
Slider
-
focusInsets
protected Insets focusInsets
Focus insets
-
insetCache
protected Insets insetCache
Inset cache
-
leftToRightCache
protected boolean leftToRightCache
Left-to-right cache
-
focusRect
protected Rectangle focusRect
Focus rectangle
-
contentRect
protected Rectangle contentRect
Content rectangle
-
labelRect
protected Rectangle labelRect
Label rectangle
-
tickRect
protected Rectangle tickRect
Tick rectangle
-
trackRect
protected Rectangle trackRect
Track rectangle
-
thumbRect
protected Rectangle thumbRect
Thumb rectangle
-
trackBuffer
protected int trackBuffer
The distance that the track is from the side of the control
-
trackListener
protected BasicSliderUI.TrackListener trackListener
Track listener
-
changeListener
protected ChangeListener changeListener
Change listener
-
componentListener
protected ComponentListener componentListener
Component listener
-
focusListener
protected FocusListener focusListener
Focus listener
-
scrollListener
protected BasicSliderUI.ScrollListener scrollListener
Scroll listener
-
propertyChangeListener
protected PropertyChangeListener propertyChangeListener
Property chane listener
-
-
Constructor Detail
-
BasicSliderUI
public BasicSliderUI(JSlider b)
Constructs aBasicSliderUI
.- Parameters:
b
- a slider
-
-
Method Detail
-
getShadowColor
protected Color getShadowColor()
Returns the shadow color.- Returns:
- the shadow color
-
getHighlightColor
protected Color getHighlightColor()
Returns the highlight color.- Returns:
- the highlight color
-
getFocusColor
protected Color getFocusColor()
Returns the focus color.- Returns:
- the focus color
-
isDragging
protected boolean isDragging()
Returns true if the user is dragging the slider.- Returns:
- true if the user is dragging the slider
- Since:
- 1.5
-
createUI
public static ComponentUI createUI(JComponent b)
Creates a UI.- Parameters:
b
- a component- Returns:
- a UI
-
installUI
public void installUI(JComponent c)
Installs a UI.- Overrides:
installUI
in classComponentUI
- Parameters:
c
- a component- See Also:
ComponentUI.uninstallUI(javax.swing.JComponent)
,JComponent.setUI(javax.swing.plaf.ComponentUI)
,JComponent.updateUI()
-
uninstallUI
public void uninstallUI(JComponent c)
Uninstalls a UI.- Overrides:
uninstallUI
in classComponentUI
- Parameters:
c
- a component- See Also:
ComponentUI.installUI(javax.swing.JComponent)
,JComponent.updateUI()
-
installDefaults
protected void installDefaults(JSlider slider)
Installs the defaults.- Parameters:
slider
- a slider
-
uninstallDefaults
protected void uninstallDefaults(JSlider slider)
Uninstalls the defaults.- Parameters:
slider
- a slider
-
createTrackListener
protected BasicSliderUI.TrackListener createTrackListener(JSlider slider)
Creates a track listener.- Parameters:
slider
- a slider- Returns:
- a track listener
-
createChangeListener
protected ChangeListener createChangeListener(JSlider slider)
Creates a change listener.- Parameters:
slider
- a slider- Returns:
- a change listener
-
createComponentListener
protected ComponentListener createComponentListener(JSlider slider)
Creates a composite listener.- Parameters:
slider
- a slider- Returns:
- a composite listener
-
createFocusListener
protected FocusListener createFocusListener(JSlider slider)
Creates a focus listener.- Parameters:
slider
- a slider- Returns:
- a focus listener
-
createScrollListener
protected BasicSliderUI.ScrollListener createScrollListener(JSlider slider)
Creates a scroll listener.- Parameters:
slider
- a slider- Returns:
- a scroll listener
-
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener(JSlider slider)
Creates a property change listener.- Parameters:
slider
- a slider- Returns:
- a property change listener
-
installListeners
protected void installListeners(JSlider slider)
Installs listeners.- Parameters:
slider
- a slider
-
uninstallListeners
protected void uninstallListeners(JSlider slider)
Uninstalls listeners.- Parameters:
slider
- a slider
-
installKeyboardActions
protected void installKeyboardActions(JSlider slider)
Installs keyboard actions.- Parameters:
slider
- a slider
-
uninstallKeyboardActions
protected void uninstallKeyboardActions(JSlider slider)
Uninstalls keyboard actions.- Parameters:
slider
- a slider
-
getBaseline
public int getBaseline(JComponent c, int width, int height)
Returns the baseline.- Overrides:
getBaseline
in classComponentUI
- Parameters:
c
-JComponent
baseline is being requested forwidth
- the width to get the baseline forheight
- the height to get the baseline for- Returns:
- baseline or a value < 0 indicating there is no reasonable baseline
- Throws:
NullPointerException
- ifc
isnull
IllegalArgumentException
- if width or height is < 0- Since:
- 1.6
- See Also:
JComponent.getBaseline(int, int)
-
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
Returns an enum indicating how the baseline of the component changes as the size changes.- Overrides:
getBaselineResizeBehavior
in classComponentUI
- Parameters:
c
-JComponent
to return baseline resize behavior for- Returns:
- an enum indicating how the baseline changes as the component size changes
- Throws:
NullPointerException
- ifc
isnull
- Since:
- 1.6
- See Also:
JComponent.getBaseline(int, int)
-
labelsHaveSameBaselines
protected boolean labelsHaveSameBaselines()
Returns true if all the labels from the label table have the same baseline.- Returns:
- true if all the labels from the label table have the same baseline
- Since:
- 1.6
-
getPreferredHorizontalSize
public Dimension getPreferredHorizontalSize()
Returns the preferred horizontal size.- Returns:
- the preferred horizontal size
-
getPreferredVerticalSize
public Dimension getPreferredVerticalSize()
Returns the preferred vertical size.- Returns:
- the preferred vertical size
-
getMinimumHorizontalSize
public Dimension getMinimumHorizontalSize()
Returns the minimum horizontal size.- Returns:
- the minimum horizontal size
-
getMinimumVerticalSize
public Dimension getMinimumVerticalSize()
Returns the minimum vertical size.- Returns:
- the minimum vertical size
-
getPreferredSize
public Dimension getPreferredSize(JComponent c)
Returns the preferred size.- Overrides:
getPreferredSize
in classComponentUI
- Parameters:
c
- a component- Returns:
- the preferred size
- See Also:
JComponent.getPreferredSize()
,LayoutManager.preferredLayoutSize(java.awt.Container)
-
getMinimumSize
public Dimension getMinimumSize(JComponent c)
Returns the minimum size.- Overrides:
getMinimumSize
in classComponentUI
- Parameters:
c
- a component- Returns:
- the minimum size
- See Also:
JComponent.getMinimumSize()
,LayoutManager.minimumLayoutSize(java.awt.Container)
,ComponentUI.getPreferredSize(javax.swing.JComponent)
-
getMaximumSize
public Dimension getMaximumSize(JComponent c)
Returns the maximum size.- Overrides:
getMaximumSize
in classComponentUI
- Parameters:
c
- a component- Returns:
- the maximum size
- See Also:
JComponent.getMaximumSize()
,LayoutManager2.maximumLayoutSize(java.awt.Container)
-
calculateGeometry
protected void calculateGeometry()
Calculates the geometry.
-
calculateFocusRect
protected void calculateFocusRect()
Calculates the focus rectangle.
-
calculateThumbSize
protected void calculateThumbSize()
Calculates the thumb size rectangle.
-
calculateContentRect
protected void calculateContentRect()
Calculates the content rectangle.
-
calculateThumbLocation
protected void calculateThumbLocation()
Calculates the thumb location.
-
calculateTrackBuffer
protected void calculateTrackBuffer()
Calculates the track buffer.
-
calculateTrackRect
protected void calculateTrackRect()
Calculates the track rectangle.
-
getTickLength
protected int getTickLength()
Gets the height of the tick area for horizontal sliders and the width of the tick area for vertical sliders. BasicSliderUI uses the returned value to determine the tick area rectangle. If you want to give your ticks some room, make this larger than you need and paint your ticks away from the sides in paintTicks().- Returns:
- an integer representing the height of the tick area for horizontal sliders, and the width of the tick area for the vertical sliders
-
calculateTickRect
protected void calculateTickRect()
Calculates the tick rectangle.
-
calculateLabelRect
protected void calculateLabelRect()
Calculates the label rectangle.
-
getThumbSize
protected Dimension getThumbSize()
Returns the thumb size.- Returns:
- the thumb size
-
getWidthOfWidestLabel
protected int getWidthOfWidestLabel()
Returns the width of the widest label.- Returns:
- the width of the widest label
-
getHeightOfTallestLabel
protected int getHeightOfTallestLabel()
Returns the height of the tallest label.- Returns:
- the height of the tallest label
-
getWidthOfHighValueLabel
protected int getWidthOfHighValueLabel()
Returns the width of the highest value label.- Returns:
- the width of the highest value label
-
getWidthOfLowValueLabel
protected int getWidthOfLowValueLabel()
Returns the width of the lowest value label.- Returns:
- the width of the lowest value label
-
getHeightOfHighValueLabel
protected int getHeightOfHighValueLabel()
Returns the height of the highest value label.- Returns:
- the height of the highest value label
-
getHeightOfLowValueLabel
protected int getHeightOfLowValueLabel()
Returns the height of the lowest value label.- Returns:
- the height of the lowest value label
-
drawInverted
protected boolean drawInverted()
Draws inverted.- Returns:
- the inverted-ness
-
getHighestValue
protected Integer getHighestValue()
Returns the biggest value that has an entry in the label table.- Returns:
- biggest value that has an entry in the label table, or null.
- Since:
- 1.6
-
getLowestValue
protected Integer getLowestValue()
Returns the smallest value that has an entry in the label table.- Returns:
- smallest value that has an entry in the label table, or null.
- Since:
- 1.6
-
getLowestValueLabel
protected Component getLowestValueLabel()
Returns the label that corresponds to the highest slider value in the label table.- Returns:
- the label that corresponds to the highest slider value in the label table
- See Also:
JSlider.setLabelTable(java.util.Dictionary)
-
getHighestValueLabel
protected Component getHighestValueLabel()
Returns the label that corresponds to the lowest slider value in the label table.- Returns:
- the label that corresponds to the lowest slider value in the label table
- See Also:
JSlider.setLabelTable(java.util.Dictionary)
-
paint
public void paint(Graphics g, JComponent c)
Description copied from class:ComponentUI
Paints the specified component appropriately for the look and feel. This method is invoked from theComponentUI.update
method when the specified component is being painted. Subclasses should override this method and use the specifiedGraphics
object to render the content of the component.- Overrides:
paint
in classComponentUI
- Parameters:
g
- theGraphics
context in which to paintc
- the component being painted; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components- See Also:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
-
recalculateIfInsetsChanged
protected void recalculateIfInsetsChanged()
Recalculates if the insets have changed.
-
recalculateIfOrientationChanged
protected void recalculateIfOrientationChanged()
Recalculates if the orientation has changed.
-
paintFocus
public void paintFocus(Graphics g)
Paints focus.- Parameters:
g
- the graphics
-
paintTrack
public void paintTrack(Graphics g)
Paints track.- Parameters:
g
- the graphics
-
paintTicks
public void paintTicks(Graphics g)
Paints ticks.- Parameters:
g
- the graphics
-
paintMinorTickForHorizSlider
protected void paintMinorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)
Paints minor tick for horizontal slider.- Parameters:
g
- the graphicstickBounds
- the tick boundsx
- the x coordinate
-
paintMajorTickForHorizSlider
protected void paintMajorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)
Paints major tick for horizontal slider.- Parameters:
g
- the graphicstickBounds
- the tick boundsx
- the x coordinate
-
paintMinorTickForVertSlider
protected void paintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)
Paints minor tick for vertical slider.- Parameters:
g
- the graphicstickBounds
- the tick boundsy
- the y coordinate
-
paintMajorTickForVertSlider
protected void paintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)
Paints major tick for vertical slider.- Parameters:
g
- the graphicstickBounds
- the tick boundsy
- the y coordinate
-
paintLabels
public void paintLabels(Graphics g)
Paints the labels.- Parameters:
g
- the graphics
-
paintHorizontalLabel
protected void paintHorizontalLabel(Graphics g, int value, Component label)
Called for every label in the label table. Used to draw the labels for horizontal sliders. The graphics have been translated to labelRect.y already.- Parameters:
g
- the graphics context in which to paintvalue
- the value of the sliderlabel
- the component label in the label table that needs to be painted- See Also:
JSlider.setLabelTable(java.util.Dictionary)
-
paintVerticalLabel
protected void paintVerticalLabel(Graphics g, int value, Component label)
Called for every label in the label table. Used to draw the labels for vertical sliders. The graphics have been translated to labelRect.x already.- Parameters:
g
- the graphics context in which to paintvalue
- the value of the sliderlabel
- the component label in the label table that needs to be painted- See Also:
JSlider.setLabelTable(java.util.Dictionary)
-
paintThumb
public void paintThumb(Graphics g)
Paints the thumb.- Parameters:
g
- the graphics
-
setThumbLocation
public void setThumbLocation(int x, int y)
Sets the thumb location.- Parameters:
x
- the x coordinatey
- the y coordinate
-
scrollByBlock
public void scrollByBlock(int direction)
Scrolls by block.- Parameters:
direction
- the direction
-
scrollByUnit
public void scrollByUnit(int direction)
Scrolls by unit.- Parameters:
direction
- the direction
-
scrollDueToClickInTrack
protected void scrollDueToClickInTrack(int dir)
This function is called when a mousePressed was detected in the track, not in the thumb. The default behavior is to scroll by block. You can override this method to stop it from scrolling or to add additional behavior.- Parameters:
dir
- the direction and number of blocks to scroll
-
xPositionForValue
protected int xPositionForValue(int value)
Returns the x position for a value.- Parameters:
value
- the value- Returns:
- the x position for a value
-
yPositionForValue
protected int yPositionForValue(int value)
Returns the y position for a value.- Parameters:
value
- the value- Returns:
- the y position for a value
-
yPositionForValue
protected int yPositionForValue(int value, int trackY, int trackHeight)
Returns the y location for the specified value. No checking is done on the arguments. In particular iftrackHeight
is negative undefined results may occur.- Parameters:
value
- the slider value to get the location fortrackY
- y-origin of the tracktrackHeight
- the height of the track- Returns:
- the y location for the specified value of the slider
- Since:
- 1.6
-
valueForYPosition
public int valueForYPosition(int yPos)
Returns the value at the y position. IfyPos
is beyond the track at the bottom or the top, this method sets the value to either the minimum or maximum value of the slider, depending on if the slider is inverted or not.- Parameters:
yPos
- the location of the slider along the y axis- Returns:
- the value at the y position
-
valueForXPosition
public int valueForXPosition(int xPos)
Returns the value at the x position. IfxPos
is beyond the track at the left or the right, this method sets the value to either the minimum or maximum value of the slider, depending on if the slider is inverted or not.- Parameters:
xPos
- the location of the slider along the x axis- Returns:
- the value of the x position
-
-