Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing.plaf.basic
Class BasicScrollBarUI

    java.lang.Object
      |
      +--javax.swing.plaf.ComponentUI
            |
            +--javax.swing.plaf.ScrollBarUI
                  |
                  +--javax.swing.plaf.basic.BasicScrollBarUI

All Implemented Interfaces:
  LayoutManager, SwingConstants

Direct Known Subclasses:
  MetalScrollBarUI

public class BasicScrollBarUI
extends ScrollBarUI
implements LayoutManager, SwingConstants

Implementation of ScrollBarUI for the Basic Look and Feel

Inner Class Summary
`protected class` | `BasicScrollBarUI.ArrowButtonListener` Listener for cursor keys.
`protected class` | `BasicScrollBarUI.ModelListener` A listener to listen for model changes.
`class` | `BasicScrollBarUI.PropertyChangeHandler`
`protected class` | `BasicScrollBarUI.ScrollListener` Listener for scrolling events intiated in the ScrollPane.
`protected class` | `BasicScrollBarUI.TrackListener` Track mouse drags.

Field Summary
`protected BasicScrollBarUI.ArrowButtonListener` | `buttonListener`
`protected JButton` | `decrButton`
`protected static int` | `DECREASE_HIGHLIGHT`
`protected JButton` | `incrButton`
`protected static int` | `INCREASE_HIGHLIGHT`
`protected boolean` | `isDragging`
`protected Dimension` | `maximumThumbSize`
`protected Dimension` | `minimumThumbSize`
`protected BasicScrollBarUI.ModelListener` | `modelListener`
`protected static int` | `NO_HIGHLIGHT`
`protected PropertyChangeListener` | `propertyChangeListener`
`protected JScrollBar` | `scrollbar`
`protected BasicScrollBarUI.ScrollListener` | `scrollListener`
`protected Timer` | `scrollTimer`
`protected Color` | `thumbColor`
`protected Color` | `thumbDarkShadowColor`
`protected Color` | `thumbHighlightColor`
`protected Color` | `thumbLightShadowColor`
`protected Rectangle` | `thumbRect`
`protected Color` | `trackColor`
`protected int` | `trackHighlight`
`protected Color` | `trackHighlightColor`
`protected BasicScrollBarUI.TrackListener` | `trackListener`
`protected Rectangle` | `trackRect`

Fields inherited from interface javax.swing.SwingConstants
`BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

Constructor Summary
`BasicScrollBarUI()`

Method Summary
`void` | `addLayoutComponent(String name, Component child)` Adds the specified component with the specified name to the layout.
`protected void` | `configureScrollBarColors()`
`protected BasicScrollBarUI.ArrowButtonListener` | `createArrowButtonListener()`
`protected JButton` | `createDecreaseButton(int orientation)`
`protected JButton` | `createIncreaseButton(int orientation)`
`protected BasicScrollBarUI.ModelListener` | `createModelListener()`
`protected PropertyChangeListener` | `createPropertyChangeListener()`
`protected BasicScrollBarUI.ScrollListener` | `createScrollListener()`
`protected BasicScrollBarUI.TrackListener` | `createTrackListener()`
`static ComponentUI` | `createUI(JComponent c)`
`Dimension` | `getMaximumSize(JComponent c)`
`protected Dimension` | `getMaximumThumbSize()` Return the largest acceptable size for the thumb.
`Dimension` | `getMinimumSize(JComponent c)` A vertical scrollbars minimum width is the largest minimum width of the (non null) increment/decrement buttons, and the minimum width of the thumb.
`protected Dimension` | `getMinimumThumbSize()` Return the smallest acceptable size for the thumb.
`Dimension` | `getPreferredSize(JComponent c)` A vertical scrollbars preferred width is the maximum of preferred widths of the (non null) increment/decrement buttons, and the minimum width of the thumb.
`protected Rectangle` | `getThumbBounds()` Return the current size/location of the thumb.
`protected Rectangle` | `getTrackBounds()` Return the current bounds of the track, i.e.
`protected void` | `installComponents()`
`protected void` | `installDefaults()`
`protected void` | `installKeyboardActions()`
`protected void` | `installListeners()`
`void` | `installUI(JComponent c)`
`void` | `layoutContainer(Container scrollbarContainer)` Lays out the container in the specified panel.
`protected void` | `layoutHScrollbar(JScrollBar sb)`
`protected void` | `layoutVScrollbar(JScrollBar sb)`
`Dimension` | `minimumLayoutSize(Container scrollbarContainer)` Calculates the minimum size dimensions for the specified panel given the components in the specified parent container.
`void` | `paint(Graphics g, JComponent c)`
`protected void` | `paintDecreaseHighlight(Graphics g)`
`protected void` | `paintIncreaseHighlight(Graphics g)`
`protected void` | `paintThumb(Graphics g, JComponent c, Rectangle thumbBounds)`
`protected void` | `paintTrack(Graphics g, JComponent c, Rectangle trackBounds)`
`Dimension` | `preferredLayoutSize(Container scrollbarContainer)` Calculates the preferred size dimensions for the specified panel given the components in the specified parent container.
`void` | `removeLayoutComponent(Component child)` Removes the specified component from the layout.
`protected void` | `scrollByBlock(int direction)`
`protected void` | `scrollByUnit(int direction)`
`protected void` | `setThumbBounds(int x, int y, int width, int height)` Set the bounds of the thumb and force a repaint that includes the old thumbBounds and the new one.
`protected void` | `uninstallComponents()`
`protected void` | `uninstallDefaults()`
`protected void` | `uninstallKeyboardActions()`
`protected void` | `uninstallListeners()`
`void` | `uninstallUI(JComponent c)`

Methods inherited from class javax.swing.plaf.ComponentUI
`contains, getAccessibleChild, getAccessibleChildrenCount, update`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### minimumThumbSize

    protected Dimension minimumThumbSize

### maximumThumbSize

    protected Dimension maximumThumbSize

### thumbHighlightColor

    protected Color thumbHighlightColor

### thumbLightShadowColor

    protected Color thumbLightShadowColor

### thumbDarkShadowColor

    protected Color thumbDarkShadowColor

### thumbColor

    protected Color thumbColor

### trackColor

    protected Color trackColor

### trackHighlightColor

    protected Color trackHighlightColor

### scrollbar

    protected JScrollBar scrollbar

### incrButton

    protected JButton incrButton

### decrButton

    protected JButton decrButton

### isDragging

    protected boolean isDragging

### trackListener

    protected BasicScrollBarUI.TrackListener trackListener

### buttonListener

    protected BasicScrollBarUI.ArrowButtonListener buttonListener

### modelListener

    protected BasicScrollBarUI.ModelListener modelListener

### thumbRect

    protected Rectangle thumbRect

### trackRect

    protected Rectangle trackRect

### trackHighlight

    protected int trackHighlight

### NO_HIGHLIGHT

    protected static final int NO_HIGHLIGHT

### DECREASE_HIGHLIGHT

    protected static final int DECREASE_HIGHLIGHT

### INCREASE_HIGHLIGHT

    protected static final int INCREASE_HIGHLIGHT

### scrollListener

    protected BasicScrollBarUI.ScrollListener scrollListener

### propertyChangeListener

    protected PropertyChangeListener propertyChangeListener

### scrollTimer

    protected Timer scrollTimer

Constructor Detail

### BasicScrollBarUI

    public BasicScrollBarUI()

Method Detail

### createUI

    public static ComponentUI createUI(JComponent c)

### configureScrollBarColors

    protected void configureScrollBarColors()

### installUI

    public void installUI(JComponent c)

  Overrides:
    `installUI` in class `ComponentUI`

### uninstallUI

    public void uninstallUI(JComponent c)

  Overrides:
    `uninstallUI` in class `ComponentUI`

### installDefaults

    protected void installDefaults()

### installComponents

    protected void installComponents()

### uninstallComponents

    protected void uninstallComponents()

### installListeners

    protected void installListeners()

### installKeyboardActions

    protected void installKeyboardActions()

### uninstallKeyboardActions

    protected void uninstallKeyboardActions()

### uninstallListeners

    protected void uninstallListeners()

### uninstallDefaults

    protected void uninstallDefaults()

### createTrackListener

    protected BasicScrollBarUI.TrackListener createTrackListener()

### createArrowButtonListener

    protected BasicScrollBarUI.ArrowButtonListener createArrowButtonListener()

### createModelListener

    protected BasicScrollBarUI.ModelListener createModelListener()

### createScrollListener

    protected BasicScrollBarUI.ScrollListener createScrollListener()

### createPropertyChangeListener

    protected PropertyChangeListener createPropertyChangeListener()

### paint

    public void paint(Graphics g,
                      JComponent c)

  Overrides:
    `paint` in class `ComponentUI`

### getPreferredSize

    public Dimension getPreferredSize(JComponent c)

  A vertical scrollbars preferred width is the maximum of preferred widths of the (non null) increment/decrement buttons, and the minimum width of the thumb. The preferred height is the sum of the preferred heights of the same parts. The basis for the preferred size of a horizontal scrollbar is similar.

  The preferredSize is only computed once, subequent calls to this method just return a cached size. T

  Overrides:
    `getPreferredSize` in class `ComponentUI`
  Parameters:
    `c` - The JScrollBar that's delegating this method to us.
  Returns:
    The preferred size of a Basic JScrollBar.
  See Also:
    `getMaximumSize(javax.swing.JComponent)`, `getMinimumSize(javax.swing.JComponent)`

### getMinimumSize

    public Dimension getMinimumSize(JComponent c)

  A vertical scrollbars minimum width is the largest minimum width of the (non null) increment/decrement buttons, and the minimum width of the thumb. The minimum height is the sum of the minimum heights of the same parts. The basis for the preferred size of a horizontal scrollbar is similar.

  The minimumSize is only computed once, subequent calls to this method just return a cached size. T

  Overrides:
    `getMinimumSize` in class `ComponentUI`
  Parameters:
    `c` - The JScrollBar that's delegating this method to us.
  Returns:
    The minimum size of a Basic JScrollBar.
  See Also:
    `getMaximumSize(javax.swing.JComponent)`, `getPreferredSize(javax.swing.JComponent)`

### getMaximumSize

    public Dimension getMaximumSize(JComponent c)

  Overrides:
    `getMaximumSize` in class `ComponentUI`
  Parameters:
    `c` - The JScrollBar that's delegating this method to us.
  Returns:
    new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
  See Also:
    `getMinimumSize(javax.swing.JComponent)`, `getPreferredSize(javax.swing.JComponent)`

### createDecreaseButton

    protected JButton createDecreaseButton(int orientation)

### createIncreaseButton

    protected JButton createIncreaseButton(int orientation)

### paintDecreaseHighlight

    protected void paintDecreaseHighlight(Graphics g)

### paintIncreaseHighlight

    protected void paintIncreaseHighlight(Graphics g)

### paintTrack

    protected void paintTrack(Graphics g,
                              JComponent c,
                              Rectangle trackBounds)

### paintThumb

    protected void paintThumb(Graphics g,
                              JComponent c,
                              Rectangle thumbBounds)

### getMinimumThumbSize

    protected Dimension getMinimumThumbSize()

  Return the smallest acceptable size for the thumb. If the scrollbar becomes so small that this size isn't available, the thumb will be hidden.

  Warning : the value returned by this method should not be be modified, it's a shared static constant.

  Returns:
    The smallest acceptable size for the thumb.
  See Also:
    `getMaximumThumbSize()`

### getMaximumThumbSize

    protected Dimension getMaximumThumbSize()

  Return the largest acceptable size for the thumb. To create a fixed size thumb one make this method and `getMinimumThumbSize` return the same value.

  Warning : the value returned by this method should not be be modified, it's a shared static constant.

  Returns:
    The largest acceptable size for the thumb.
  See Also:
    `getMinimumThumbSize()`

### addLayoutComponent

    public void addLayoutComponent(String name,
                                   Component child)

  Description copied from interface: `LayoutManager`
  Adds the specified component with the specified name to the layout.
  Specified by:
    `addLayoutComponent` in interface `LayoutManager`
  Following copied from interface: `java.awt.LayoutManager`
  Parameters:
    `name` - the component name
    `comp` - the component to be added

### removeLayoutComponent

    public void removeLayoutComponent(Component child)

  Description copied from interface: `LayoutManager`
  Removes the specified component from the layout.
  Specified by:
    `removeLayoutComponent` in interface `LayoutManager`
  Following copied from interface: `java.awt.LayoutManager`
  Parameters:
    `comp` - the component to be removed

### preferredLayoutSize

    public Dimension preferredLayoutSize(Container scrollbarContainer)

  Description copied from interface: `LayoutManager`
  Calculates the preferred size dimensions for the specified panel given the components in the specified parent container.
  Specified by:
    `preferredLayoutSize` in interface `LayoutManager`
  Following copied from interface: `java.awt.LayoutManager`
  Parameters:
    `parent` - the component to be laid out
  See Also:
    `LayoutManager.minimumLayoutSize(java.awt.Container)`

### minimumLayoutSize

    public Dimension minimumLayoutSize(Container scrollbarContainer)

  Description copied from interface: `LayoutManager`
  Calculates the minimum size dimensions for the specified panel given the components in the specified parent container.
  Specified by:
    `minimumLayoutSize` in interface `LayoutManager`
  Following copied from interface: `java.awt.LayoutManager`
  Parameters:
    `parent` - the component to be laid out
  See Also:
    `LayoutManager.preferredLayoutSize(java.awt.Container)`

### layoutVScrollbar

    protected void layoutVScrollbar(JScrollBar sb)

### layoutHScrollbar

    protected void layoutHScrollbar(JScrollBar sb)

### layoutContainer

    public void layoutContainer(Container scrollbarContainer)

  Description copied from interface: `LayoutManager`
  Lays out the container in the specified panel.
  Specified by:
    `layoutContainer` in interface `LayoutManager`
  Following copied from interface: `java.awt.LayoutManager`
  Parameters:
    `parent` - the component which needs to be laid out

### setThumbBounds

    protected void setThumbBounds(int x,
                                  int y,
                                  int width,
                                  int height)

  Set the bounds of the thumb and force a repaint that includes the old thumbBounds and the new one.
  See Also:
    `getThumbBounds()`

### getThumbBounds

    protected Rectangle getThumbBounds()

  Return the current size/location of the thumb.

  Warning : the value returned by this method should not be be modified, it's a reference to the actual rectangle, not a copy.

  Returns:
    The current size/location of the thumb.
  See Also:
    `setThumbBounds(int, int, int, int)`

### getTrackBounds

    protected Rectangle getTrackBounds()

  Return the current bounds of the track, i.e. the space in between the increment and decrement buttons, less the insets. The value returned by this method is updated each time the scrollbar is layed out (validated).

  Warning : the value returned by this method should not be be modified, it's a reference to the actual rectangle, not a copy.

  Returns:
    The current bounds of the scrollbar track.
  See Also:
    `layoutContainer(java.awt.Container)`

### scrollByBlock

    protected void scrollByBlock(int direction)

### scrollByUnit

    protected void scrollByUnit(int direction)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.