Module java.desktop
Package 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 declared in class javax.swing.plaf.basic.BasicScrollBarUI

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

### Field Summary

Fields
`protected MetalScrollButton` `decreaseButton` The decrease button.
`static String` `FREE_STANDING_PROP` The property `JScrollBar.isFreeStanding`.
`protected MetalScrollButton` `increaseButton` The increase button.
`protected boolean` `isFreeStanding` The value of the property `JScrollBar.isFreeStanding`.
`protected int` `scrollBarWidth` The width of the scroll bar.

### Fields declared in class javax.swing.plaf.basic.BasicScrollBarUI

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

### Fields declared in 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
`MetalScrollBarUI()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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.
`static ComponentUI` `createUI​(JComponent c)` Constructs a new `MetalScrollBarUI` instance.
`protected void` `setThumbBounds​(int x, int y, int width, int height)` This is overridden only to increase the invalid area.

### Methods declared in class javax.swing.plaf.basic.BasicScrollBarUI

`configureScrollBarColors, createArrowButtonListener, createModelListener, createPropertyChangeListener, createScrollListener, createTrackListener, getMaximumSize, getMaximumThumbSize, getMinimumThumbSize, getPreferredSize, getSupportsAbsolutePositioning, getThumbBounds, getTrackBounds, installComponents, installDefaults, installKeyboardActions, installListeners, installUI, isThumbRollover, layoutHScrollbar, layoutVScrollbar, paintDecreaseHighlight, paintIncreaseHighlight, paintThumb, paintTrack, scrollByBlock, scrollByUnit, setThumbRollover, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI`

### Methods declared in class javax.swing.plaf.ComponentUI

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

### Methods declared in class java.lang.Object

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

### Methods declared in interface java.awt.LayoutManager

`addLayoutComponent, layoutContainer, minimumLayoutSize, preferredLayoutSize, removeLayoutComponent`

### Field Detail

#### increaseButton

    protected MetalScrollButton increaseButton

The increase button.

#### decreaseButton

    protected MetalScrollButton decreaseButton

The decrease button.

#### scrollBarWidth

    protected int scrollBarWidth

The width of the scroll bar.

#### FREE_STANDING_PROP

    public static final String FREE_STANDING_PROP

The property `JScrollBar.isFreeStanding`.

See Also:
  Constant Field Values

#### isFreeStanding

    protected boolean isFreeStanding

The value of the property `JScrollBar.isFreeStanding`.

### Constructor Detail

#### MetalScrollBarUI

    public MetalScrollBarUI()

### Method Detail

#### createUI

    public static ComponentUI createUI​(JComponent c)

Constructs a new `MetalScrollBarUI` instance.

Parameters:
  `c` - a component
Returns:
  a new `MetalScrollBarUI` instance

#### createDecreaseButton

    protected JButton createDecreaseButton​(int orientation)

Returns the view that represents the decrease view.

Overrides:
  `createDecreaseButton` in class `BasicScrollBarUI`
Parameters:
  `orientation` - the orientation
Returns:
  a decrease button

#### createIncreaseButton

    protected JButton createIncreaseButton​(int orientation)

Returns the view that represents the increase view.

Overrides:
  `createIncreaseButton` in class `BasicScrollBarUI`
Parameters:
  `orientation` - the orientation
Returns:
  an increase button

#### 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`
Parameters:
  `x` - set the x location of the thumb
  `y` - set the y location of the thumb
  `width` - set the width of the thumb
  `height` - set the height of the thumb
See Also:
  `BasicScrollBarUI.getThumbBounds()`