Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing.plaf.basic
Class BasicScrollPaneUI

    java.lang.Object
      javax.swing.plaf.ComponentUI
          javax.swing.plaf.ScrollPaneUI
              javax.swing.plaf.basic.BasicScrollPaneUI

All Implemented Interfaces:
  ScrollPaneConstants

Direct Known Subclasses:
  MetalScrollPaneUI

    public class BasicScrollPaneUI

extends ScrollPaneUI
implements ScrollPaneConstants

A default L&F implementation of ScrollPaneUI.

Nested Class Summary
`class` | `BasicScrollPaneUI.HSBChangeListener` Horizontal scrollbar listener.
`protected class` | `BasicScrollPaneUI.MouseWheelHandler` MouseWheelHandler is an inner class which implements the MouseWheelListener interface.
`class` | `BasicScrollPaneUI.PropertyChangeHandler`
`class` | `BasicScrollPaneUI.ViewportChangeHandler` Listener for viewport events.
`class` | `BasicScrollPaneUI.VSBChangeListener` Vertical scrollbar listener.

Field Summary
`protected ChangeListener` | `hsbChangeListener`
`protected JScrollPane` | `scrollpane`
`protected PropertyChangeListener` | `spPropertyChangeListener`
`protected ChangeListener` | `viewportChangeListener`
`protected ChangeListener` | `vsbChangeListener`

Fields inherited from interface javax.swing.ScrollPaneConstants
`COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT`

Constructor Summary
`BasicScrollPaneUI()`

Method Summary
`protected ChangeListener` | `createHSBChangeListener()`
`protected MouseWheelListener` | `createMouseWheelListener()` Creates an instance of MouseWheelListener, which is added to the JScrollPane by installUI().
`protected PropertyChangeListener` | `createPropertyChangeListener()` Creates an instance of PropertyChangeListener that's added to the JScrollPane by installUI().
`static ComponentUI` | `createUI(JComponent x)`
`protected ChangeListener` | `createViewportChangeListener()`
`protected ChangeListener` | `createVSBChangeListener()`
`int` | `getBaseline(JComponent c, int width, int height)` Returns the baseline.
`Component.BaselineResizeBehavior` | `getBaselineResizeBehavior(JComponent c)` Returns an enum indicating how the baseline of the component changes as the size changes.
`Dimension` | `getMaximumSize(JComponent c)` Returns the specified component's maximum size appropriate for the look and feel.
`protected void` | `installDefaults(JScrollPane scrollpane)`
`protected void` | `installKeyboardActions(JScrollPane c)`
`protected void` | `installListeners(JScrollPane c)`
`void` | `installUI(JComponent x)` Configures the specified component appropriate for the look and feel.
`void` | `paint(Graphics g, JComponent c)` Paints the specified component appropriate for the look and feel.
`protected void` | `syncScrollPaneWithViewport()`
`protected void` | `uninstallDefaults(JScrollPane c)`
`protected void` | `uninstallKeyboardActions(JScrollPane c)`
`protected void` | `uninstallListeners(JComponent c)`
`void` | `uninstallUI(JComponent c)` Reverses configuration which was done on the specified component during `installUI`.
`protected void` | `updateColumnHeader(PropertyChangeEvent e)`
`protected void` | `updateRowHeader(PropertyChangeEvent e)`
`protected void` | `updateScrollBarDisplayPolicy(PropertyChangeEvent e)`
`protected void` | `updateViewport(PropertyChangeEvent e)`

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

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

Field Detail

### scrollpane

    protected JScrollPane scrollpane

### vsbChangeListener

    protected ChangeListener vsbChangeListener

### hsbChangeListener

    protected ChangeListener hsbChangeListener

### viewportChangeListener

    protected ChangeListener viewportChangeListener

### spPropertyChangeListener

    protected PropertyChangeListener spPropertyChangeListener

Constructor Detail

### BasicScrollPaneUI

    public BasicScrollPaneUI()

Method Detail

### createUI

    public static ComponentUI createUI(JComponent x)

### paint

    public void paint(Graphics g,
                      JComponent c)

  Description copied from class: `ComponentUI`
  Paints the specified component appropriate for the look and feel. This method is invoked from the `ComponentUI.update` method when the specified component is being painted. Subclasses should override this method and use the specified `Graphics` object to render the content of the component.

  Overrides:
    `paint` in class `ComponentUI`
  Parameters:
    `g` - the `Graphics` context in which to paint
    `c` - the component being painted; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
  See Also:
    `ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)`

### getMaximumSize

    public Dimension getMaximumSize(JComponent c)

  Description copied from class: `ComponentUI`
  Returns the specified component's maximum size appropriate for the look and feel. If `null` is returned, the maximum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes `getPreferredSize` and returns that value.

  Overrides:
    `getMaximumSize` in class `ComponentUI`
  Parameters:
    `c` - the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
  Returns:
    new Dimension(Short.MAX_VALUE, Short.MAX_VALUE)
  See Also:
    `JComponent.getMaximumSize()`, `LayoutManager2.maximumLayoutSize(java.awt.Container)`

### installDefaults

    protected void installDefaults(JScrollPane scrollpane)

### installListeners

    protected void installListeners(JScrollPane c)

### installKeyboardActions

    protected void installKeyboardActions(JScrollPane c)

### installUI

    public void installUI(JComponent x)

  Description copied from class: `ComponentUI`
  Configures the specified component appropriate for the look and feel. This method is invoked when the `ComponentUI` instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:
  1. Install any default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
  2. Install a `LayoutManager` on the component if necessary.
  3. Create/add any required sub-components to the component.
  4. Create/install event listeners on the component.
  5. Create/install a `PropertyChangeListener` on the component in order to detect and respond to component property changes appropriately.
  6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
  7. Initialize any appropriate instance data.

  Overrides:
    `installUI` in class `ComponentUI`
  Parameters:
    `x` - the component where this UI delegate is being installed
  See Also:
    `ComponentUI.uninstallUI(javax.swing.JComponent)`, `JComponent.setUI(javax.swing.plaf.ComponentUI)`, `JComponent.updateUI()`

### uninstallDefaults

    protected void uninstallDefaults(JScrollPane c)

### uninstallListeners

    protected void uninstallListeners(JComponent c)

### uninstallKeyboardActions

    protected void uninstallKeyboardActions(JScrollPane c)

### uninstallUI

    public void uninstallUI(JComponent c)

  Description copied from class: `ComponentUI`
  Reverses configuration which was done on the specified component during `installUI`. This method is invoked when this `UIComponent` instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in `installUI`, being careful to leave the `JComponent` instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:
  1. Remove any UI-set borders from the component.
  2. Remove any UI-set layout managers on the component.
  3. Remove any UI-added sub-components from the component.
  4. Remove any UI-added event/property listeners from the component.
  5. Remove any UI-installed keyboard UI from the component.
  6. Nullify any allocated instance data objects to allow for GC.

  Overrides:
    `uninstallUI` in class `ComponentUI`
  Parameters:
    `c` - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
  See Also:
    `ComponentUI.installUI(javax.swing.JComponent)`, `JComponent.updateUI()`

### syncScrollPaneWithViewport

    protected void syncScrollPaneWithViewport()

### getBaseline

    public int getBaseline(JComponent c,
                           int width,
                           int height)

  Returns the baseline.

  Overrides:
    `getBaseline` in class `ComponentUI`
  Parameters:
    `c` - `JComponent` baseline is being requested for
    `width` - the width to get the baseline for
    `height` - the height to get the baseline for
  Returns:
    baseline or a value < 0 indicating there is no reasonable baseline
  Throws:
    `NullPointerException` - if `c` is `null`
    `IllegalArgumentException` - if width or height is < 0
  Since:
    1.6
  See Also:
    `JComponent.getBaseline(int, int)`

### getBaselineResizeBehavior

    public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)

  Returns an enum indicating how the baseline of the component changes as the size changes.

  Overrides:
    `getBaselineResizeBehavior` in class `ComponentUI`
  Parameters:
    `c` - `JComponent` to return baseline resize behavior for
  Returns:
    an enum indicating how the baseline changes as the component size changes
  Throws:
    `NullPointerException` - if `c` is `null`
  Since:
    1.6
  See Also:
    `JComponent.getBaseline(int, int)`

### createViewportChangeListener

    protected ChangeListener createViewportChangeListener()

### createHSBChangeListener

    protected ChangeListener createHSBChangeListener()

### createVSBChangeListener

    protected ChangeListener createVSBChangeListener()

### createMouseWheelListener

    protected MouseWheelListener createMouseWheelListener()

  Creates an instance of MouseWheelListener, which is added to the JScrollPane by installUI(). The returned MouseWheelListener is used to handle mouse wheel-driven scrolling.

  Returns:
    MouseWheelListener which implements wheel-driven scrolling
  Since:
    1.4
  See Also:
    `installUI(javax.swing.JComponent)`, `BasicScrollPaneUI.MouseWheelHandler`

### updateScrollBarDisplayPolicy

    protected void updateScrollBarDisplayPolicy(PropertyChangeEvent e)

### updateViewport

    protected void updateViewport(PropertyChangeEvent e)

### updateRowHeader

    protected void updateRowHeader(PropertyChangeEvent e)

### updateColumnHeader

    protected void updateColumnHeader(PropertyChangeEvent e)

### createPropertyChangeListener

    protected PropertyChangeListener createPropertyChangeListener()

  Creates an instance of PropertyChangeListener that's added to the JScrollPane by installUI(). Subclasses can override this method to return a custom PropertyChangeListener, e.g.

       class MyScrollPaneUI extends BasicScrollPaneUI {
          protected PropertyChangeListener createPropertyChangeListener() {
              return new MyPropertyChangeListener();
          }
          public class MyPropertyChangeListener extends PropertyChangeListener {
              public void propertyChange(PropertyChangeEvent e) {
                  if (e.getPropertyName().equals("viewport")) {
                      // do some extra work when the viewport changes
                  }
                  super.propertyChange(e);
              }
          }
       }

  See Also:
    `PropertyChangeListener`, `installUI(javax.swing.JComponent)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

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