# 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 BasicScrollBarUI

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

## Field Summary

Fields
Modifier and Type
Field
Description
`protected MetalScrollButton`
`decreaseButton`
The decrease button.
`static final 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 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 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
Description
`MetalScrollBarUI()`
Constructs a `MetalScrollBarUI`.

## Method Summary

Modifier and Type
Method
Description
`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 BasicScrollBarUI

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

### Methods declared in class ComponentUI

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

### Methods declared in class Object

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

## Field Details

### 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 Details

### MetalScrollBarUI

public MetalScrollBarUI()
Constructs a `MetalScrollBarUI`.

## Method Details

### 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()`