# Class BasicTreeUI.ComponentHandler

java.lang.Object
java.awt.event.ComponentAdapter
javax.swing.plaf.basic.BasicTreeUI.ComponentHandler

All Implemented Interfaces:
  `ActionListener, ComponentListener, EventListener`

Enclosing class:
  `BasicTreeUI`

public class BasicTreeUI.ComponentHandler extends ComponentAdapter implements ActionListener
Updates the preferred size when scrolling (if necessary).

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected JScrollBar`
  `scrollBar`
  ScrollBar that is being adjusted.
  `protected Timer`
  `timer`
  Timer used when inside a scrollpane and the scrollbar is adjusting.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ComponentHandler()`
  Constructs a `ComponentHandler`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `actionPerformed(ActionEvent ae)`
  Public as a result of Timer.
  `protected JScrollPane`
  `getScrollPane()`
  Returns the `JScrollPane` housing the `JTree`, or null if one isn't found.
  `protected void`
  `startTimer()`
  Creates, if necessary, and starts a Timer to check if need to resize the bounds.

  ### Methods declared in class ComponentAdapter

  `componentHidden, componentMoved, componentResized, componentShown`
  Modifier and Type
  Method
  Description
  `void`
  `componentHidden(ComponentEvent e)`
  Invoked when the component has been made invisible.
  `void`
  `componentMoved(ComponentEvent e)`
  Invoked when the component's position changes.
  `void`
  `componentResized(ComponentEvent e)`
  Invoked when the component's size changes.
  `void`
  `componentShown(ComponentEvent e)`
  Invoked when the component has been made visible.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### timer

    protected Timer timer
    Timer used when inside a scrollpane and the scrollbar is adjusting.

  - ### scrollBar

    protected JScrollBar scrollBar
    ScrollBar that is being adjusted.

- ## Constructor Details

  - ### ComponentHandler

    public ComponentHandler()
    Constructs a `ComponentHandler`.

- ## Method Details

  - ### startTimer

    protected void startTimer()
    Creates, if necessary, and starts a Timer to check if need to resize the bounds.

  - ### getScrollPane

    protected JScrollPane getScrollPane()
    Returns the `JScrollPane` housing the `JTree`, or null if one isn't found.
    Returns:
      the `JScrollPane` housing the `JTree`

  - ### actionPerformed

    public void actionPerformed(ActionEvent ae)
    Public as a result of Timer. If the scrollBar is null, or not adjusting, this stops the timer and updates the sizing.
    Specified by:
      `actionPerformed` in interface `ActionListener`
    Parameters:
      `ae` - the event to be processed