javax.swing.plaf.metal

## Class MetalScrollBarUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.ScrollBarUI
    - - javax.swing.plaf.basic.BasicScrollBarUI
      - - javax.swing.plaf.metal.MetalScrollBarUI

All Implemented Interfaces:
  LayoutManager, SwingConstants

    public class MetalScrollBarUI
    extends BasicScrollBarUI

Implementation of ScrollBarUI for the Metal Look and Feel

### Nested Class Summary

### Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicScrollBarUI

`BasicScrollBarUI.ArrowButtonListener, BasicScrollBarUI.ModelListener, BasicScrollBarUI.PropertyChangeHandler, BasicScrollBarUI.ScrollListener, BasicScrollBarUI.TrackListener`

### Field Summary

Fields
`protected javax.swing.plaf.metal.MetalBumps` `bumps`
`protected MetalScrollButton` `decreaseButton`
`static String` `FREE_STANDING_PROP`
`protected MetalScrollButton` `increaseButton`
`protected boolean` `isFreeStanding`
`protected int` `scrollBarWidth`

### Fields inherited from class javax.swing.plaf.basic.BasicScrollBarUI

`buttonListener, decrButton, DECREASE_HIGHLIGHT, incrButton, INCREASE_HIGHLIGHT, isDragging, maximumThumbSize, minimumThumbSize, modelListener, NO_HIGHLIGHT, propertyChangeListener, scrollbar, scrollListener, scrollTimer, thumbDarkShadowColor, thumbLightShadowColor, thumbRect, trackColor, trackHighlight, trackHighlightColor, trackListener, trackRect`

### Fields inherited from interface javax.swing.SwingConstants

`BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

### Constructor Summary

Constructors
Constructor and Description
`MetalScrollBarUI()`

### Method Summary

Methods
`protected void` `configureScrollBarColors()`
`protected JButton` `createDecreaseButton(int orientation)` Returns the view that represents the decrease view.
`protected JButton` `createIncreaseButton(int orientation)` Returns the view that represents the increase view.
`protected PropertyChangeListener` `createPropertyChangeListener()`
`static ComponentUI` `createUI(JComponent c)`
`protected Dimension` `getMinimumThumbSize()` Return the smallest acceptable size for the thumb.
`Dimension` `getPreferredSize(JComponent c)` A vertical scrollbar's preferred width is the maximum of preferred widths of the (non `null`) increment/decrement buttons, and the minimum width of the thumb.
`protected void` `installDefaults()`
`protected void` `installListeners()`
`protected void` `paintThumb(Graphics g, JComponent c, Rectangle thumbBounds)`
`protected void` `paintTrack(Graphics g, JComponent c, Rectangle trackBounds)`
`protected void` `setThumbBounds(int x, int y, int width, int height)` This is overridden only to increase the invalid area.

### Methods inherited from class javax.swing.plaf.basic.BasicScrollBarUI

`addLayoutComponent, createArrowButtonListener, createModelListener, createScrollListener, createTrackListener, getMaximumSize, getMaximumThumbSize, getSupportsAbsolutePositioning, getThumbBounds, getTrackBounds, installComponents, installKeyboardActions, installUI, isThumbRollover, layoutContainer, layoutHScrollbar, layoutVScrollbar, minimumLayoutSize, paint, paintDecreaseHighlight, paintIncreaseHighlight, preferredLayoutSize, removeLayoutComponent, scrollByBlock, scrollByUnit, setThumbRollover, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI`

### Methods inherited from class javax.swing.plaf.ComponentUI

`contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMinimumSize, update`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### bumps

    protected javax.swing.plaf.metal.MetalBumps bumps

#### increaseButton

    protected MetalScrollButton increaseButton

#### decreaseButton

    protected MetalScrollButton decreaseButton

#### scrollBarWidth

    protected int scrollBarWidth

#### FREE_STANDING_PROP

    public static final String FREE_STANDING_PROP

See Also:
  Constant Field Values

#### isFreeStanding

    protected boolean isFreeStanding

### Constructor Detail

#### MetalScrollBarUI

    public MetalScrollBarUI()

### Method Detail

#### createUI

    public static ComponentUI createUI(JComponent c)

#### installDefaults

    protected void installDefaults()

Overrides:
  `installDefaults` in class `BasicScrollBarUI`

#### installListeners

    protected void installListeners()

Overrides:
  `installListeners` in class `BasicScrollBarUI`

#### createPropertyChangeListener

    protected PropertyChangeListener createPropertyChangeListener()

Overrides:
  `createPropertyChangeListener` in class `BasicScrollBarUI`

#### configureScrollBarColors

    protected void configureScrollBarColors()

Overrides:
  `configureScrollBarColors` in class `BasicScrollBarUI`

#### getPreferredSize

    public Dimension getPreferredSize(JComponent c)

Description copied from class: `BasicScrollBarUI`
A vertical scrollbar's 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, subsequent calls to this method just return a cached size.

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

#### createDecreaseButton

    protected JButton createDecreaseButton(int orientation)

Returns the view that represents the decrease view.

Overrides:
  `createDecreaseButton` in class `BasicScrollBarUI`

#### createIncreaseButton

    protected JButton createIncreaseButton(int orientation)

Returns the view that represents the increase view.

Overrides:
  `createIncreaseButton` in class `BasicScrollBarUI`

#### paintTrack

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

Overrides:
  `paintTrack` in class `BasicScrollBarUI`

#### paintThumb

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

Overrides:
  `paintThumb` in class `BasicScrollBarUI`

#### getMinimumThumbSize

    protected Dimension getMinimumThumbSize()

Description copied from class: `BasicScrollBarUI`
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.

Overrides:
  `getMinimumThumbSize` in class `BasicScrollBarUI`
Returns:
  The smallest acceptable size for the thumb.
See Also:
  `BasicScrollBarUI.getMaximumThumbSize()`

#### setThumbBounds

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

This is overridden only to increase the invalid area. This ensures that the "Shadow" below the thumb is invalidated

Overrides:
  `setThumbBounds` in class `BasicScrollBarUI`
See Also:
  `BasicScrollBarUI.getThumbBounds()`

Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.