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

## Method Summary

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)`
Deprecated, for removal: This API element is subject to removal in a future version.
It is recommended that `createFloatingWindow(JToolBar)` be used instead
`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 Details

### 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 Details

### BasicToolBarUI

public BasicToolBarUI()
Constructs a `BasicToolBarUI`.

## Method Details

### 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

@Deprecated(since="17", forRemoval=true) protected JFrame createFloatingFrame(JToolBar toolbar)
Deprecated, for removal: This API element is subject to removal in a future version.
It is recommended that `createFloatingWindow(JToolBar)` be used instead
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