ToolTipManager (Java SE 17 & JDK 17)
Description: declaration: module: java.desktop, package: javax.swing, class: ToolTipManager
Keywords: javax.swing.ToolTipManager class

Module java.desktop
Package javax.swing

# Class ToolTipManager

java.lang.Object
java.awt.event.MouseAdapter
javax.swing.ToolTipManager

All Implemented Interfaces:
  `MouseListener`, `MouseMotionListener`, `MouseWheelListener`, `EventListener`

public class ToolTipManager extends MouseAdapter implements MouseMotionListener
Manages all the `ToolTips` in the system.

ToolTipManager contains numerous properties for configuring how long it will take for the tooltips to become visible, and how long till they hide. Consider a component that has a different tooltip based on where the mouse is, such as JTree. When the mouse moves into the JTree and over a region that has a valid tooltip, the tooltip will become visible after `initialDelay` milliseconds. After `dismissDelay` milliseconds the tooltip will be hidden. If the mouse is over a region that has a valid tooltip, and the tooltip is currently visible, when the mouse moves to a region that doesn't have a valid tooltip the tooltip will be hidden. If the mouse then moves back into a region that has a valid tooltip within `reshowDelay` milliseconds, the tooltip will immediately be shown, otherwise the tooltip will be shown again after `initialDelay` milliseconds.

Since:
  1.2
See Also:
  - `JComponent.createToolTip()`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected class`
  `ToolTipManager.insideTimerAction`
  Inside timer action.
  `protected class`
  `ToolTipManager.outsideTimerAction`
  Outside timer action.
  `protected class`
  `ToolTipManager.stillInsideTimerAction`
  Still inside timer action.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `heavyWeightPopupEnabled`
  Heavyweight popup enabled.
  `protected boolean`
  `lightWeightPopupEnabled`
  Lightweight popup enabled.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getDismissDelay()`
  Returns the dismissal delay value.
  `int`
  `getInitialDelay()`
  Returns the initial delay value.
  `int`
  `getReshowDelay()`
  Returns the reshow delay property.
  `boolean`
  `isEnabled()`
  Returns true if this object is enabled.
  `boolean`
  `isLightWeightPopupEnabled()`
  Returns true if lightweight (all-Java) `Tooltips` are in use, or false if heavyweight (native peer) `Tooltips` are being used.
  `void`
  `mouseDragged(MouseEvent event)`
  Called when the mouse is pressed and dragged.
  `void`
  `mouseEntered(MouseEvent event)`
  Called when the mouse enters the region of a component.
  `void`
  `mouseExited(MouseEvent event)`
  Called when the mouse exits the region of a component.
  `void`
  `mouseMoved(MouseEvent event)`
  Called when the mouse is moved.
  `void`
  `mousePressed(MouseEvent event)`
  Called when the mouse is pressed.
  `void`
  `registerComponent(JComponent component)`
  Registers a component for tooltip management.
  `void`
  `setDismissDelay(int milliseconds)`
  Specifies the dismissal delay value.
  `void`
  `setEnabled(boolean flag)`
  Enables or disables the tooltip.
  `void`
  `setInitialDelay(int milliseconds)`
  Specifies the initial delay value.
  `void`
  `setLightWeightPopupEnabled(boolean aFlag)`
  When displaying the `JToolTip`, the `ToolTipManager` chooses to use a lightweight `JPanel` if it fits.
  `void`
  `setReshowDelay(int milliseconds)`
  Used to specify the amount of time before the user has to wait `initialDelay` milliseconds before a tooltip will be shown.
  `static ToolTipManager`
  `sharedInstance()`
  Returns a shared `ToolTipManager` instance.
  `void`
  `unregisterComponent(JComponent component)`
  Removes a component from tooltip control.

  ### Methods declared in class java.awt.event.MouseAdapter

  `mouseClicked, mouseReleased, mouseWheelMoved`

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

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

- ## Field Details

  - ### lightWeightPopupEnabled

    protected boolean lightWeightPopupEnabled
    Lightweight popup enabled.

  - ### heavyWeightPopupEnabled

    protected boolean heavyWeightPopupEnabled
    Heavyweight popup enabled.

- ## Method Details

  - ### setEnabled

    public void setEnabled(boolean flag)
    Enables or disables the tooltip.
    Parameters:
      `flag` - true to enable the tip, false otherwise

  - ### isEnabled

    public boolean isEnabled()
    Returns true if this object is enabled.
    Returns:
      true if this object is enabled, false otherwise

  - ### setLightWeightPopupEnabled

    public void setLightWeightPopupEnabled(boolean aFlag)
    When displaying the `JToolTip`, the `ToolTipManager` chooses to use a lightweight `JPanel` if it fits. This method allows you to disable this feature. You have to do disable it if your application mixes light weight and heavy weights components.
    Parameters:
      `aFlag` - true if a lightweight panel is desired, false otherwise

  - ### isLightWeightPopupEnabled

    public boolean isLightWeightPopupEnabled()
    Returns true if lightweight (all-Java) `Tooltips` are in use, or false if heavyweight (native peer) `Tooltips` are being used.
    Returns:
      true if lightweight `ToolTips` are in use

  - ### setInitialDelay

    public void setInitialDelay(int milliseconds)
    Specifies the initial delay value.
    Parameters:
      `milliseconds` - the number of milliseconds to delay (after the cursor has paused) before displaying the tooltip
    See Also:
      - `getInitialDelay()`

  - ### getInitialDelay

    public int getInitialDelay()
    Returns the initial delay value.
    Returns:
      an integer representing the initial delay value, in milliseconds
    See Also:
      - `setInitialDelay(int)`

  - ### setDismissDelay

    public void setDismissDelay(int milliseconds)
    Specifies the dismissal delay value.
    Parameters:
      `milliseconds` - the number of milliseconds to delay before taking away the tooltip
    See Also:
      - `getDismissDelay()`

  - ### getDismissDelay

    public int getDismissDelay()
    Returns the dismissal delay value.
    Returns:
      an integer representing the dismissal delay value, in milliseconds
    See Also:
      - `setDismissDelay(int)`

  - ### setReshowDelay

    public void setReshowDelay(int milliseconds)
    Used to specify the amount of time before the user has to wait `initialDelay` milliseconds before a tooltip will be shown. That is, if the tooltip is hidden, and the user moves into a region of the same Component that has a valid tooltip within `milliseconds` milliseconds the tooltip will immediately be shown. Otherwise, if the user moves into a region with a valid tooltip after `milliseconds` milliseconds, the user will have to wait an additional `initialDelay` milliseconds before the tooltip is shown again.
    Parameters:
      `milliseconds` - time in milliseconds
    See Also:
      - `getReshowDelay()`

  - ### getReshowDelay

    public int getReshowDelay()
    Returns the reshow delay property.
    Returns:
      reshown delay property
    See Also:
      - `setReshowDelay(int)`

  - ### sharedInstance

    public static ToolTipManager sharedInstance()
    Returns a shared `ToolTipManager` instance.
    Returns:
      a shared `ToolTipManager` object

  - ### registerComponent

    public void registerComponent(JComponent component)
    Registers a component for tooltip management.

    This will register key bindings to show and hide the tooltip text only if `component` has focus bindings. This is done so that components that are not normally focus traversable, such as `JLabel`, are not made focus traversable as a result of invoking this method.

    Parameters:
      `component` - a `JComponent` object to add
    See Also:
      - `Component.isFocusTraversable()`

  - ### unregisterComponent

    public void unregisterComponent(JComponent component)
    Removes a component from tooltip control.
    Parameters:
      `component` - a `JComponent` object to remove

  - ### mouseEntered

    public void mouseEntered(MouseEvent event)
    Called when the mouse enters the region of a component. This determines whether the tool tip should be shown.
    Specified by:
      `mouseEntered` in interface `MouseListener`
    Parameters:
      `event` - the event in question

  - ### mouseExited

    public void mouseExited(MouseEvent event)
    Called when the mouse exits the region of a component. Any tool tip showing should be hidden.
    Specified by:
      `mouseExited` in interface `MouseListener`
    Parameters:
      `event` - the event in question

  - ### mousePressed

    public void mousePressed(MouseEvent event)
    Called when the mouse is pressed. Any tool tip showing should be hidden.
    Specified by:
      `mousePressed` in interface `MouseListener`
    Parameters:
      `event` - the event in question

  - ### mouseDragged

    public void mouseDragged(MouseEvent event)
    Called when the mouse is pressed and dragged. Does nothing.
    Specified by:
      `mouseDragged` in interface `MouseMotionListener`
    Overrides:
      `mouseDragged` in class `MouseAdapter`
    Parameters:
      `event` - the event in question

  - ### mouseMoved

    public void mouseMoved(MouseEvent event)
    Called when the mouse is moved. Determines whether the tool tip should be displayed.
    Specified by:
      `mouseMoved` in interface `MouseMotionListener`
    Overrides:
      `mouseMoved` in class `MouseAdapter`
    Parameters:
      `event` - the event in question