Module java.desktop
Package javax.swing.plaf.basic

## Class BasicToolBarUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.ToolBarUI
    - - javax.swing.plaf.basic.BasicToolBarUI

- All Implemented Interfaces:
    `SwingConstants`
  Direct Known Subclasses:
    `MetalToolBarUI`, `SynthToolBarUI`

      public class BasicToolBarUI
      extends ToolBarUI
      implements SwingConstants

  A Basic L&F implementation of ToolBarUI. This implementation is a "combined" view/controller.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BasicToolBarUI.DockingListener` | This class should be treated as a "protected" inner class.
    `protected class` | `BasicToolBarUI.DragWindow` | The window which appears during dragging the `JToolBar`.
    `protected class` | `BasicToolBarUI.FrameListener` | The class listens for window events.
    `protected class` | `BasicToolBarUI.PropertyListener` | The class listens for property changed events.
    `protected class` | `BasicToolBarUI.ToolBarContListener` | The class listens for component events.
    `protected class` | `BasicToolBarUI.ToolBarFocusListener` | The class listens for focus events.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected String` | `constraintBeforeFloating` | The layout before floating.
    `protected Color` | `dockingBorderColor` | The color of the docking border.
    `protected Color` | `dockingColor` | The background color of the docking border.
    `protected MouseInputListener` | `dockingListener` | The instance of a `MouseInputListener`.
    `protected KeyStroke` | `downKey` | Deprecated. As of Java 2 platform v1.3.
    `protected BasicToolBarUI.DragWindow` | `dragWindow` | The instance of `DragWindow`.
    `protected Color` | `floatingBorderColor` | The color of the not docking border.
    `protected Color` | `floatingColor` | The background color of the not docking border.
    `protected int` | `focusedCompIndex` | The index of the focused component.
    `protected KeyStroke` | `leftKey` | Deprecated. As of Java 2 platform v1.3.
    `protected PropertyChangeListener` | `propertyListener` | The instance of a `PropertyChangeListener`.
    `protected KeyStroke` | `rightKey` | Deprecated. As of Java 2 platform v1.3.
    `protected JToolBar` | `toolBar` | The instance of `JToolBar`.
    `protected ContainerListener` | `toolBarContListener` | The instance of a `ContainerListener`.
    `protected FocusListener` | `toolBarFocusListener` | The instance of a `FocusListener`.
    `protected KeyStroke` | `upKey` | Deprecated. As of Java 2 platform v1.3.

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `canDock​(Component c, Point p)` | Returns `true` if the `JToolBar` can dock at the given position.
    `protected MouseInputListener` | `createDockingListener()` | Returns an instance of `MouseInputListener`.
    `protected BasicToolBarUI.DragWindow` | `createDragWindow​(JToolBar toolbar)` | Returns an instance of `DragWindow`.
    `protected JFrame` | `createFloatingFrame​(JToolBar toolbar)` | No longer used, use BasicToolBarUI.createFloatingWindow(JToolBar)
    `protected RootPaneContainer` | `createFloatingWindow​(JToolBar toolbar)` | Creates a window which contains the toolbar after it has been dragged out from its container
    `protected WindowListener` | `createFrameListener()` | Constructs a new instance of `WindowListener`.
    `protected Border` | `createNonRolloverBorder()` | Creates the non rollover border for toolbar components.
    `protected PropertyChangeListener` | `createPropertyListener()` | Returns an instance of `PropertyChangeListener`.
    `protected Border` | `createRolloverBorder()` | Creates a rollover border for toolbar components.
    `protected ContainerListener` | `createToolBarContListener()` | Returns an instance of `ContainerListener`.
    `protected FocusListener` | `createToolBarFocusListener()` | Returns an instance of `FocusListener`.
    `static ComponentUI` | `createUI​(JComponent c)` | Constructs a new instance of `BasicToolBarUI`.
    `protected void` | `dragTo​(Point position, Point origin)` | The method is used to drag `DragWindow` during the `JToolBar` is being dragged.
    `protected void` | `floatAt​(Point position, Point origin)` | The method is called at end of dragging to place the frame in either its original place or in its floating frame.
    `Color` | `getDockingColor()` | Gets the color displayed when over a docking area
    `Color` | `getFloatingColor()` | Gets the color displayed when over a floating area
    `protected Border` | `getNonRolloverBorder​(AbstractButton b)` | Returns a non-rollover border for the button.
    `protected Border` | `getRolloverBorder​(AbstractButton b)` | Returns a rollover border for the button.
    `protected void` | `installComponents()` | Registers components.
    `protected void` | `installDefaults()` | Installs default properties.
    `protected void` | `installKeyboardActions()` | Registers keyboard actions.
    `protected void` | `installListeners()` | Registers listeners.
    `protected void` | `installNonRolloverBorders​(JComponent c)` | Installs non-rollover borders on all the child components of the JComponent.
    `protected void` | `installNormalBorders​(JComponent c)` | Installs normal borders on all the child components of the JComponent.
    `protected void` | `installRolloverBorders​(JComponent c)` | Installs rollover borders on all the child components of the JComponent.
    `boolean` | `isFloating()` | Returns `true` if the `JToolBar` is floating
    `boolean` | `isRolloverBorders()` | Returns a flag to determine whether rollover button borders are enabled.
    `protected void` | `navigateFocusedComp​(int direction)` | Navigates the focused component.
    `protected void` | `paintDragWindow​(Graphics g)` | Paints the contents of the window used for dragging.
    `protected void` | `setBorderToNonRollover​(Component c)` | Sets the border of the component to have a non-rollover border which was created by the `createNonRolloverBorder()` method.
    `protected void` | `setBorderToNormal​(Component c)` | Sets the border of the component to have a normal border.
    `protected void` | `setBorderToRollover​(Component c)` | Sets the border of the component to have a rollover border which was created by the `createRolloverBorder()` method.
    `void` | `setDockingColor​(Color c)` | Sets the color displayed when over a docking area
    `void` | `setFloating​(boolean b, Point p)` | Sets the floating property.
    `void` | `setFloatingColor​(Color c)` | Sets the color displayed when over a floating area
    `void` | `setFloatingLocation​(int x, int y)` | Sets the floating location.
    `void` | `setOrientation​(int orientation)` | Sets the tool bar's orientation.
    `void` | `setRolloverBorders​(boolean rollover)` | Sets the flag for enabling rollover borders on the toolbar and it will also install the appropriate border depending on the state of the flag.
    `protected void` | `uninstallComponents()` | Unregisters components.
    `protected void` | `uninstallDefaults()` | Uninstalls default properties.
    `protected void` | `uninstallKeyboardActions()` | Unregisters keyboard actions.
    `protected void` | `uninstallListeners()` | Unregisters listeners.

    - ### Methods declared in class javax.swing.plaf.ComponentUI

      `contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, installUI, paint, uninstallUI, update`

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

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

- - ### Field Detail

    - #### toolBar

          protected JToolBar toolBar

      The instance of `JToolBar`.

    - #### dragWindow

          protected BasicToolBarUI.DragWindow dragWindow

      The instance of `DragWindow`.

    - #### focusedCompIndex

          protected int focusedCompIndex

      The index of the focused component.

    - #### dockingColor

          protected Color dockingColor

      The background color of the docking border.

    - #### floatingColor

          protected Color floatingColor

      The background color of the not docking border.

    - #### dockingBorderColor

          protected Color dockingBorderColor

      The color of the docking border.

    - #### floatingBorderColor

          protected Color floatingBorderColor

      The color of the not docking border.

    - #### dockingListener

          protected MouseInputListener dockingListener

      The instance of a `MouseInputListener`.

    - #### propertyListener

          protected PropertyChangeListener propertyListener

      The instance of a `PropertyChangeListener`.

    - #### toolBarContListener

          protected ContainerListener toolBarContListener

      The instance of a `ContainerListener`.

    - #### toolBarFocusListener

          protected FocusListener toolBarFocusListener

      The instance of a `FocusListener`.

    - #### constraintBeforeFloating

          protected String constraintBeforeFloating

      The layout before floating.

    - #### upKey

          @Deprecated
          protected KeyStroke upKey

      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.

    - #### downKey

          @Deprecated
          protected KeyStroke downKey

      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.

    - #### leftKey

          @Deprecated
          protected KeyStroke leftKey

      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.

    - #### rightKey

          @Deprecated
          protected KeyStroke rightKey

      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.

  - ### Constructor Detail

    - #### BasicToolBarUI

          public BasicToolBarUI()

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI​(JComponent c)

      Constructs a new instance of `BasicToolBarUI`.
      Parameters:
        `c` - a component
      Returns:
        a new instance of `BasicToolBarUI`

    - #### installDefaults

          protected void installDefaults()

      Installs default properties.

    - #### uninstallDefaults

          protected void uninstallDefaults()

      Uninstalls default properties.

    - #### installComponents

          protected void installComponents()

      Registers components.

    - #### uninstallComponents

          protected void uninstallComponents()

      Unregisters components.

    - #### installListeners

          protected void installListeners()

      Registers listeners.

    - #### uninstallListeners

          protected void uninstallListeners()

      Unregisters listeners.

    - #### installKeyboardActions

          protected void installKeyboardActions()

      Registers keyboard actions.

    - #### uninstallKeyboardActions

          protected void uninstallKeyboardActions()

      Unregisters keyboard actions.

    - #### navigateFocusedComp

          protected void navigateFocusedComp​(int direction)

      Navigates the focused component.
      Parameters:
        `direction` - a direction

    - #### createRolloverBorder

          protected Border createRolloverBorder()

      Creates a rollover border for toolbar components. The rollover border will be installed if rollover borders are enabled.

      Override this method to provide an alternate rollover border.

      Returns:
        a rollover border for toolbar components
      Since:
        1.4

    - #### createNonRolloverBorder

          protected Border createNonRolloverBorder()

      Creates the non rollover border for toolbar components. This border will be installed as the border for components added to the toolbar if rollover borders are not enabled.

      Override this method to provide an alternate rollover border.

      Returns:
        the non rollover border for toolbar components
      Since:
        1.4

    - #### createFloatingFrame

          protected JFrame createFloatingFrame​(JToolBar toolbar)

      No longer used, use BasicToolBarUI.createFloatingWindow(JToolBar)
      Parameters:
        `toolbar` - an instance of `JToolBar`
      Returns:
        an instance of `JFrame`
      See Also:
        `createFloatingWindow(javax.swing.JToolBar)`

    - #### createFloatingWindow

          protected RootPaneContainer createFloatingWindow​(JToolBar toolbar)

      Creates a window which contains the toolbar after it has been dragged out from its container
      Parameters:
        `toolbar` - an instance of `JToolBar`
      Returns:
        a `RootPaneContainer` object, containing the toolbar
      Since:
        1.4

    - #### createDragWindow

          protected BasicToolBarUI.DragWindow createDragWindow​(JToolBar toolbar)

      Returns an instance of `DragWindow`.
      Parameters:
        `toolbar` - an instance of `JToolBar`
      Returns:
        an instance of `DragWindow`

    - #### isRolloverBorders

          public boolean isRolloverBorders()

      Returns a flag to determine whether rollover button borders are enabled.
      Returns:
        true if rollover borders are enabled; false otherwise
      Since:
        1.4
      See Also:
        `setRolloverBorders(boolean)`

    - #### setRolloverBorders

          public void setRolloverBorders​(boolean rollover)

      Sets the flag for enabling rollover borders on the toolbar and it will also install the appropriate border depending on the state of the flag.
      Parameters:
        `rollover` - if true, rollover borders are installed. Otherwise non-rollover borders are installed
      Since:
        1.4
      See Also:
        `isRolloverBorders()`

    - #### installRolloverBorders

          protected void installRolloverBorders​(JComponent c)

      Installs rollover borders on all the child components of the JComponent.

      This is a convenience method to call `setBorderToRollover` for each child component.

      Parameters:
        `c` - container which holds the child components (usually a JToolBar)
      Since:
        1.4
      See Also:
        `setBorderToRollover(java.awt.Component)`

    - #### installNonRolloverBorders

          protected void installNonRolloverBorders​(JComponent c)

      Installs non-rollover borders on all the child components of the JComponent. A non-rollover border is the border that is installed on the child component while it is in the toolbar.

      This is a convenience method to call `setBorderToNonRollover` for each child component.

      Parameters:
        `c` - container which holds the child components (usually a JToolBar)
      Since:
        1.4
      See Also:
        `setBorderToNonRollover(java.awt.Component)`

    - #### installNormalBorders

          protected void installNormalBorders​(JComponent c)

      Installs normal borders on all the child components of the JComponent. A normal border is the original border that was installed on the child component before it was added to the toolbar.

      This is a convenience method to call `setBorderNormal` for each child component.

      Parameters:
        `c` - container which holds the child components (usually a JToolBar)
      Since:
        1.4
      See Also:
        `setBorderToNonRollover(java.awt.Component)`

    - #### setBorderToRollover

          protected void setBorderToRollover​(Component c)

      Sets the border of the component to have a rollover border which was created by the `createRolloverBorder()` method.
      Parameters:
        `c` - component which will have a rollover border installed
      Since:
        1.4
      See Also:
        `createRolloverBorder()`

    - #### getRolloverBorder

          protected Border getRolloverBorder​(AbstractButton b)

      Returns a rollover border for the button.
      Parameters:
        `b` - the button to calculate the rollover border for
      Returns:
        the rollover border
      Since:
        1.6
      See Also:
        `setBorderToRollover(java.awt.Component)`

    - #### setBorderToNonRollover

          protected void setBorderToNonRollover​(Component c)

      Sets the border of the component to have a non-rollover border which was created by the `createNonRolloverBorder()` method.
      Parameters:
        `c` - component which will have a non-rollover border installed
      Since:
        1.4
      See Also:
        `createNonRolloverBorder()`

    - #### getNonRolloverBorder

          protected Border getNonRolloverBorder​(AbstractButton b)

      Returns a non-rollover border for the button.
      Parameters:
        `b` - the button to calculate the non-rollover border for
      Returns:
        the non-rollover border
      Since:
        1.6
      See Also:
        `setBorderToNonRollover(java.awt.Component)`

    - #### setBorderToNormal

          protected void setBorderToNormal​(Component c)

      Sets the border of the component to have a normal border. A normal border is the original border that was installed on the child component before it was added to the toolbar.
      Parameters:
        `c` - component which will have a normal border re-installed
      Since:
        1.4
      See Also:
        `createNonRolloverBorder()`

    - #### setFloatingLocation

          public void setFloatingLocation​(int x,
                                          int y)

      Sets the floating location.
      Parameters:
        `x` - an X coordinate
        `y` - an Y coordinate

    - #### isFloating

          public boolean isFloating()

      Returns `true` if the `JToolBar` is floating
      Returns:
        `true` if the `JToolBar` is floating

    - #### setFloating

          public void setFloating​(boolean b,
                                  Point p)

      Sets the floating property.
      Parameters:
        `b` - `true` if the `JToolBar` is floating
        `p` - the position

    - #### setOrientation

          public void setOrientation​(int orientation)

      Sets the tool bar's orientation.
      Parameters:
        `orientation` - the new orientation

    - #### getDockingColor

          public Color getDockingColor()

      Gets the color displayed when over a docking area
      Returns:
        the color displayed when over a docking area

    - #### setDockingColor

          public void setDockingColor​(Color c)

      Sets the color displayed when over a docking area
      Parameters:
        `c` - the new color

    - #### getFloatingColor

          public Color getFloatingColor()

      Gets the color displayed when over a floating area
      Returns:
        the color displayed when over a floating area

    - #### setFloatingColor

          public void setFloatingColor​(Color c)

      Sets the color displayed when over a floating area
      Parameters:
        `c` - the new color

    - #### canDock

          public boolean canDock​(Component c,
                                 Point p)

      Returns `true` if the `JToolBar` can dock at the given position.
      Parameters:
        `c` - a component
        `p` - a position
      Returns:
        `true` if the `JToolBar` can dock at the given position

    - #### dragTo

          protected void dragTo​(Point position,
                                Point origin)

      The method is used to drag `DragWindow` during the `JToolBar` is being dragged.
      Parameters:
        `position` - the relative to the `JTollBar` position
        `origin` - the screen position of `JToolBar` before dragging

    - #### floatAt

          protected void floatAt​(Point position,
                                 Point origin)

      The method is called at end of dragging to place the frame in either its original place or in its floating frame.
      Parameters:
        `position` - the relative to the `JTollBar` position
        `origin` - the screen position of `JToolBar` before dragging

    - #### createToolBarContListener

          protected ContainerListener createToolBarContListener()

      Returns an instance of `ContainerListener`.
      Returns:
        an instance of `ContainerListener`

    - #### createToolBarFocusListener

          protected FocusListener createToolBarFocusListener()

      Returns an instance of `FocusListener`.
      Returns:
        an instance of `FocusListener`

    - #### createPropertyListener

          protected PropertyChangeListener createPropertyListener()

      Returns an instance of `PropertyChangeListener`.
      Returns:
        an instance of `PropertyChangeListener`

    - #### createDockingListener

          protected MouseInputListener createDockingListener()

      Returns an instance of `MouseInputListener`.
      Returns:
        an instance of `MouseInputListener`

    - #### createFrameListener

          protected WindowListener createFrameListener()

      Constructs a new instance of `WindowListener`.
      Returns:
        a new instance of `WindowListener`

    - #### paintDragWindow

          protected void paintDragWindow​(Graphics g)

      Paints the contents of the window used for dragging.
      Parameters:
        `g` - Graphics to paint to.
      Throws:
        `NullPointerException` - is `g` is null
      Since:
        1.5