MetalScrollBarUI (Java SE 15 & JDK 15)
Description: declaration: module: java.desktop, package: javax.swing.plaf.metal, class: MetalScrollBarUI
Keywords: javax.swing.plaf.metal.MetalScrollBarUI class

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
  Modifier and Type | Field | Description
  --- | --- | ---
  `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
  Constructor | Description
  --- | ---
  `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 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 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()

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