BasicSliderUI (Java 2 Platform SE 5.0) (original) (raw)


javax.swing.plaf.basic

Class BasicSliderUI

java.lang.Object extended by javax.swing.plaf.ComponentUI extended by javax.swing.plaf.SliderUI extended by javax.swing.plaf.basic.BasicSliderUI

Direct Known Subclasses:

MetalSliderUI


public class BasicSliderUI

extends SliderUI

A Basic L&F implementation of SliderUI.


Nested Class Summary
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
class BasicSliderUI.ScrollListener Scroll-event listener.
class BasicSliderUI.TrackListener Track mouse movements.
Field Summary
protected ChangeListener changeListener
protected ComponentListener componentListener
protected Rectangle contentRect
protected Insets focusInsets
protected FocusListener focusListener
protected Rectangle focusRect
protected Insets insetCache
protected Rectangle labelRect
protected boolean leftToRightCache
static int MAX_SCROLL
static int MIN_SCROLL
static int NEGATIVE_SCROLL
static int POSITIVE_SCROLL
protected PropertyChangeListener propertyChangeListener
protected BasicSliderUI.ScrollListener scrollListener
protected Timer scrollTimer
protected JSlider slider
protected Rectangle thumbRect
protected Rectangle tickRect
protected int trackBuffer
protected BasicSliderUI.TrackListener trackListener
protected Rectangle trackRect
Constructor Summary
BasicSliderUI(JSlider b)
Method Summary
protected void calculateContentRect()
protected void calculateFocusRect()
protected void calculateGeometry()
protected void calculateLabelRect()
protected void calculateThumbLocation()
protected void calculateThumbSize()
protected void calculateTickRect()
protected void calculateTrackBuffer()
protected void calculateTrackRect()
protected ChangeListener createChangeListener(JSlider slider)
protected ComponentListener createComponentListener(JSlider slider)
protected FocusListener createFocusListener(JSlider slider)
protected PropertyChangeListener createPropertyChangeListener(JSlider slider)
protected BasicSliderUI.ScrollListener createScrollListener(JSlider slider)
protected BasicSliderUI.TrackListener createTrackListener(JSlider slider)
static ComponentUI createUI(JComponent b)
protected boolean drawInverted()
protected Color getFocusColor()
protected int getHeightOfHighValueLabel()
protected int getHeightOfLowValueLabel()
protected int getHeightOfTallestLabel()
protected Component getHighestValueLabel() Returns the label that corresponds to the lowest slider value in the label table.
protected Color getHighlightColor()
protected Component getLowestValueLabel() Returns the label that corresponds to the highest slider value in the label table.
Dimension getMaximumSize(JComponent c) Returns the specified component's maximum size appropriate for the look and feel.
Dimension getMinimumHorizontalSize()
Dimension getMinimumSize(JComponent c) Returns the specified component's minimum size appropriate for the look and feel.
Dimension getMinimumVerticalSize()
Dimension getPreferredHorizontalSize()
Dimension getPreferredSize(JComponent c) Returns the specified component's preferred size appropriate for the look and feel.
Dimension getPreferredVerticalSize()
protected Color getShadowColor()
protected Dimension getThumbSize()
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()
protected int getWidthOfLowValueLabel()
protected int getWidthOfWidestLabel()
protected void installDefaults(JSlider slider)
protected void installKeyboardActions(JSlider slider)
protected void installListeners(JSlider slider)
void installUI(JComponent c) Configures the specified component appropriate for the look and feel.
protected boolean isDragging() Returns true if the user is dragging the slider.
void [paint](../../../../javax/swing/plaf/basic/BasicSliderUI.html#paint%28java.awt.Graphics, javax.swing.JComponent%29)(Graphics g,JComponent c) Paints the specified component appropriate for the look and feel.
void paintFocus(Graphics g)
protected void [paintHorizontalLabel](../../../../javax/swing/plaf/basic/BasicSliderUI.html#paintHorizontalLabel%28java.awt.Graphics, int, java.awt.Component%29)(Graphics g, int value,Component label) Called for every label in the label table.
void paintLabels(Graphics g)
protected void [paintMajorTickForHorizSlider](../../../../javax/swing/plaf/basic/BasicSliderUI.html#paintMajorTickForHorizSlider%28java.awt.Graphics, java.awt.Rectangle, int%29)(Graphics g,Rectangle tickBounds, int x)
protected void [paintMajorTickForVertSlider](../../../../javax/swing/plaf/basic/BasicSliderUI.html#paintMajorTickForVertSlider%28java.awt.Graphics, java.awt.Rectangle, int%29)(Graphics g,Rectangle tickBounds, int y)
protected void [paintMinorTickForHorizSlider](../../../../javax/swing/plaf/basic/BasicSliderUI.html#paintMinorTickForHorizSlider%28java.awt.Graphics, java.awt.Rectangle, int%29)(Graphics g,Rectangle tickBounds, int x)
protected void [paintMinorTickForVertSlider](../../../../javax/swing/plaf/basic/BasicSliderUI.html#paintMinorTickForVertSlider%28java.awt.Graphics, java.awt.Rectangle, int%29)(Graphics g,Rectangle tickBounds, int y)
void paintThumb(Graphics g)
void paintTicks(Graphics g)
void paintTrack(Graphics g)
protected void [paintVerticalLabel](../../../../javax/swing/plaf/basic/BasicSliderUI.html#paintVerticalLabel%28java.awt.Graphics, int, java.awt.Component%29)(Graphics g, int value,Component label) Called for every label in the label table.
protected void recalculateIfInsetsChanged()
protected void recalculateIfOrientationChanged()
void scrollByBlock(int direction)
void scrollByUnit(int direction)
protected void scrollDueToClickInTrack(int dir) This function is called when a mousePressed was detected in the track, not in the thumb.
void [setThumbLocation](../../../../javax/swing/plaf/basic/BasicSliderUI.html#setThumbLocation%28int, int%29)(int x, int y)
protected void uninstallKeyboardActions(JSlider slider)
protected void uninstallListeners(JSlider slider)
void uninstallUI(JComponent c) Reverses configuration which was done on the specified component duringinstallUI.
int valueForXPosition(int xPos) Returns a value give an x position.
int valueForYPosition(int yPos) Returns a value give a y position.
protected int xPositionForValue(int value)
protected int yPositionForValue(int value)
Methods inherited from class javax.swing.plaf.ComponentUI
[contains](../../../../javax/swing/plaf/ComponentUI.html#contains%28javax.swing.JComponent, int, int%29), [getAccessibleChild](../../../../javax/swing/plaf/ComponentUI.html#getAccessibleChild%28javax.swing.JComponent, int%29), getAccessibleChildrenCount, [update](../../../../javax/swing/plaf/ComponentUI.html#update%28java.awt.Graphics, javax.swing.JComponent%29)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, [wait](../../../../java/lang/Object.html#wait%28long, int%29)
Field Detail

POSITIVE_SCROLL

public static final int POSITIVE_SCROLL

See Also:

Constant Field Values


NEGATIVE_SCROLL

public static final int NEGATIVE_SCROLL

See Also:

Constant Field Values


MIN_SCROLL

public static final int MIN_SCROLL

See Also:

Constant Field Values


MAX_SCROLL

public static final int MAX_SCROLL

See Also:

Constant Field Values


scrollTimer

protected Timer scrollTimer


slider

protected JSlider slider


focusInsets

protected Insets focusInsets


insetCache

protected Insets insetCache


leftToRightCache

protected boolean leftToRightCache


focusRect

protected Rectangle focusRect


contentRect

protected Rectangle contentRect


labelRect

protected Rectangle labelRect


tickRect

protected Rectangle tickRect


trackRect

protected Rectangle trackRect


thumbRect

protected Rectangle thumbRect


trackBuffer

protected int trackBuffer


trackListener

protected BasicSliderUI.TrackListener trackListener


changeListener

protected ChangeListener changeListener


componentListener

protected ComponentListener componentListener


focusListener

protected FocusListener focusListener


scrollListener

protected BasicSliderUI.ScrollListener scrollListener


propertyChangeListener

protected PropertyChangeListener propertyChangeListener

Constructor Detail

BasicSliderUI

public BasicSliderUI(JSlider b)

Method Detail

getShadowColor

protected Color getShadowColor()


getHighlightColor

protected Color getHighlightColor()


getFocusColor

protected Color getFocusColor()


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)


installUI

public void installUI(JComponent c)

Description copied from class: [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html#installUI%28javax.swing.JComponent%29)

Configures the specified component appropriate for the look and feel. This method is invoked when the ComponentUI instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:

  1. Install any default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
  2. Install a LayoutManager on the component if necessary.
  3. Create/add any required sub-components to the component.
  4. Create/install event listeners on the component.
  5. Create/install a PropertyChangeListener on the component in order to detect and respond to component property changes appropriately.
  6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
  7. Initialize any appropriate instance data.

Overrides:

[installUI](../../../../javax/swing/plaf/ComponentUI.html#installUI%28javax.swing.JComponent%29) in class [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html "class in javax.swing.plaf")

Parameters:

c - the component where this UI delegate is being installed

See Also:

ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()


uninstallUI

public void uninstallUI(JComponent c)

Description copied from class: [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html#uninstallUI%28javax.swing.JComponent%29)

Reverses configuration which was done on the specified component duringinstallUI. This method is invoked when this UIComponent instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in installUI, being careful to leave the JComponent instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:

  1. Remove any UI-set borders from the component.
  2. Remove any UI-set layout managers on the component.
  3. Remove any UI-added sub-components from the component.
  4. Remove any UI-added event/property listeners from the component.
  5. Remove any UI-installed keyboard UI from the component.
  6. Nullify any allocated instance data objects to allow for GC.

Overrides:

[uninstallUI](../../../../javax/swing/plaf/ComponentUI.html#uninstallUI%28javax.swing.JComponent%29) in class [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html "class in javax.swing.plaf")

Parameters:

c - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components

See Also:

ComponentUI.installUI(javax.swing.JComponent), JComponent.updateUI()


installDefaults

protected void installDefaults(JSlider slider)


createTrackListener

protected BasicSliderUI.TrackListener createTrackListener(JSlider slider)


createChangeListener

protected ChangeListener createChangeListener(JSlider slider)


createComponentListener

protected ComponentListener createComponentListener(JSlider slider)


createFocusListener

protected FocusListener createFocusListener(JSlider slider)


createScrollListener

protected BasicSliderUI.ScrollListener createScrollListener(JSlider slider)


createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener(JSlider slider)


installListeners

protected void installListeners(JSlider slider)


uninstallListeners

protected void uninstallListeners(JSlider slider)


installKeyboardActions

protected void installKeyboardActions(JSlider slider)


uninstallKeyboardActions

protected void uninstallKeyboardActions(JSlider slider)


getPreferredHorizontalSize

public Dimension getPreferredHorizontalSize()


getPreferredVerticalSize

public Dimension getPreferredVerticalSize()


getMinimumHorizontalSize

public Dimension getMinimumHorizontalSize()


getMinimumVerticalSize

public Dimension getMinimumVerticalSize()


getPreferredSize

public Dimension getPreferredSize(JComponent c)

Description copied from class: [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html#getPreferredSize%28javax.swing.JComponent%29)

Returns the specified component's preferred size appropriate for the look and feel. If null is returned, the preferred size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method returns null.

Overrides:

[getPreferredSize](../../../../javax/swing/plaf/ComponentUI.html#getPreferredSize%28javax.swing.JComponent%29) in class [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html "class in javax.swing.plaf")

Parameters:

c - the component whose preferred size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components

See Also:

JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)


getMinimumSize

public Dimension getMinimumSize(JComponent c)

Description copied from class: [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html#getMinimumSize%28javax.swing.JComponent%29)

Returns the specified component's minimum size appropriate for the look and feel. If null is returned, the minimum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes getPreferredSize and returns that value.

Overrides:

[getMinimumSize](../../../../javax/swing/plaf/ComponentUI.html#getMinimumSize%28javax.swing.JComponent%29) in class [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html "class in javax.swing.plaf")

Parameters:

c - the component whose minimum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components

Returns:

a Dimension object or null

See Also:

JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), ComponentUI.getPreferredSize(javax.swing.JComponent)


getMaximumSize

public Dimension getMaximumSize(JComponent c)

Description copied from class: [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html#getMaximumSize%28javax.swing.JComponent%29)

Returns the specified component's maximum size appropriate for the look and feel. If null is returned, the maximum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes getPreferredSize and returns that value.

Overrides:

[getMaximumSize](../../../../javax/swing/plaf/ComponentUI.html#getMaximumSize%28javax.swing.JComponent%29) in class [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html "class in javax.swing.plaf")

Parameters:

c - the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components

Returns:

a Dimension object or null

See Also:

JComponent.getMaximumSize(), LayoutManager2.maximumLayoutSize(java.awt.Container)


calculateGeometry

protected void calculateGeometry()


calculateFocusRect

protected void calculateFocusRect()


calculateThumbSize

protected void calculateThumbSize()


calculateContentRect

protected void calculateContentRect()


calculateThumbLocation

protected void calculateThumbLocation()


calculateTrackBuffer

protected void calculateTrackBuffer()


calculateTrackRect

protected void calculateTrackRect()


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().


calculateTickRect

protected void calculateTickRect()


calculateLabelRect

protected void calculateLabelRect()


getThumbSize

protected Dimension getThumbSize()


getWidthOfWidestLabel

protected int getWidthOfWidestLabel()


getHeightOfTallestLabel

protected int getHeightOfTallestLabel()


getWidthOfHighValueLabel

protected int getWidthOfHighValueLabel()


getWidthOfLowValueLabel

protected int getWidthOfLowValueLabel()


getHeightOfHighValueLabel

protected int getHeightOfHighValueLabel()


getHeightOfLowValueLabel

protected int getHeightOfLowValueLabel()


drawInverted

protected boolean drawInverted()


getLowestValueLabel

protected Component getLowestValueLabel()

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.

See Also:

JSlider.setLabelTable(java.util.Dictionary)


paint

public void paint(Graphics g, JComponent c)

Description copied from class: [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html#paint%28java.awt.Graphics, javax.swing.JComponent%29)

Paints the specified component appropriate for the look and feel. This method is invoked from the ComponentUI.update method when the specified component is being painted. Subclasses should override this method and use the specified Graphics object to render the content of the component.

Overrides:

[paint](../../../../javax/swing/plaf/ComponentUI.html#paint%28java.awt.Graphics, javax.swing.JComponent%29) in class [ComponentUI](../../../../javax/swing/plaf/ComponentUI.html "class in javax.swing.plaf")

Parameters:

g - the Graphics context in which to paint

c - 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)](../../../../javax/swing/plaf/ComponentUI.html#update%28java.awt.Graphics, javax.swing.JComponent%29)


recalculateIfInsetsChanged

protected void recalculateIfInsetsChanged()


recalculateIfOrientationChanged

protected void recalculateIfOrientationChanged()


paintFocus

public void paintFocus(Graphics g)


paintTrack

public void paintTrack(Graphics g)


paintTicks

public void paintTicks(Graphics g)


paintMinorTickForHorizSlider

protected void paintMinorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)


paintMajorTickForHorizSlider

protected void paintMajorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)


paintMinorTickForVertSlider

protected void paintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)


paintMajorTickForVertSlider

protected void paintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)


paintLabels

public void paintLabels(Graphics g)


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.

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.

See Also:

JSlider.setLabelTable(java.util.Dictionary)


paintThumb

public void paintThumb(Graphics g)


setThumbLocation

public void setThumbLocation(int x, int y)


scrollByBlock

public void scrollByBlock(int direction)


scrollByUnit

public void scrollByUnit(int 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.


xPositionForValue

protected int xPositionForValue(int value)


yPositionForValue

protected int yPositionForValue(int value)


valueForYPosition

public int valueForYPosition(int yPos)

Returns a value give a y position. If yPos is past the track at the top or the bottom it will set the value to the min or max of the slider, depending if the slider is inverted or not.


valueForXPosition

public int valueForXPosition(int xPos)

Returns a value give an x position. If xPos is past the track at the left or the right it will set the value to the min or max of the slider, depending if the slider is inverted or not.



Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.