# Class MetalToolBarUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ToolBarUI
javax.swing.plaf.basic.BasicToolBarUI
javax.swing.plaf.metal.MetalToolBarUI

All Implemented Interfaces:
  `SwingConstants`

public class MetalToolBarUI extends BasicToolBarUI
A Metal Look and Feel implementation of ToolBarUI. This implementation is a "combined" view/controller.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected class`
  `MetalToolBarUI.MetalContainerListener`
  No longer used.
  `protected class`
  `MetalToolBarUI.MetalDockingListener`
  `DockingListener` for `MetalToolBarUI`.
  `protected class`
  `MetalToolBarUI.MetalRolloverListener`
  No longer used.

  ### Nested classes/interfaces declared in class BasicToolBarUI

  `BasicToolBarUI.DockingListener, BasicToolBarUI.DragWindow, BasicToolBarUI.FrameListener, BasicToolBarUI.PropertyListener, BasicToolBarUI.ToolBarContListener, BasicToolBarUI.ToolBarFocusListener`
  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 ContainerListener`
  `contListener`
  This protected field is implementation specific.
  `protected PropertyChangeListener`
  `rolloverListener`
  This protected field is implementation specific.

  ### Fields declared in class BasicToolBarUI

  `constraintBeforeFloating, dockingBorderColor, dockingColor, dockingListener, downKey, dragWindow, floatingBorderColor, floatingColor, focusedCompIndex, leftKey, propertyListener, rightKey, toolBar, toolBarContListener, toolBarFocusListener, upKey`
  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 SwingConstants

  `BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`
  Modifier and Type
  Field
  Description
  `static final int`
  `BOTTOM`
  Box-orientation constant used to specify the bottom of a box.
  `static final int`
  `CENTER`
  The central position in an area.
  `static final int`
  `EAST`
  Compass-direction east (right).
  `static final int`
  `HORIZONTAL`
  Horizontal orientation.
  `static final int`
  `LEADING`
  Identifies the leading edge of text for use with left-to-right and right-to-left languages.
  `static final int`
  `LEFT`
  Box-orientation constant used to specify the left side of a box.
  `static final int`
  `NEXT`
  Identifies the next direction in a sequence.
  `static final int`
  `NORTH`
  Compass-direction North (up).
  `static final int`
  `NORTH_EAST`
  Compass-direction north-east (upper right).
  `static final int`
  `NORTH_WEST`
  Compass-direction north west (upper left).
  `static final int`
  `PREVIOUS`
  Identifies the previous direction in a sequence.
  `static final int`
  `RIGHT`
  Box-orientation constant used to specify the right side of a box.
  `static final int`
  `SOUTH`
  Compass-direction south (down).
  `static final int`
  `SOUTH_EAST`
  Compass-direction south-east (lower right).
  `static final int`
  `SOUTH_WEST`
  Compass-direction south-west (lower left).
  `static final int`
  `TOP`
  Box-orientation constant used to specify the top of a box.
  `static final int`
  `TRAILING`
  Identifies the trailing edge of text for use with left-to-right and right-to-left languages.
  `static final int`
  `VERTICAL`
  Vertical orientation.
  `static final int`
  `WEST`
  Compass-direction west (left).

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected ContainerListener`
  `createContainerListener()`
  Creates a container listener that will be added to the JToolBar.
  `protected PropertyChangeListener`
  `createRolloverListener()`
  Creates a property change listener that will be added to the JToolBar.
  `static ComponentUI`
  `createUI(JComponent c)`
  Constructs an instance of `MetalToolBarUI`.
  `protected void`
  `setDragOffset(Point p)`
  Sets the offset of the mouse cursor inside the DragWindow.
  `void`
  `update(Graphics g, JComponent c)`
  If necessary paints the background of the component, then invokes `paint`.

  ### Methods declared in class BasicToolBarUI

  `canDock, createDockingListener, createDragWindow, createFloatingFrame, createFloatingWindow, createFrameListener, createNonRolloverBorder, createPropertyListener, createRolloverBorder, createToolBarContListener, createToolBarFocusListener, dragTo, floatAt, getDockingColor, getFloatingColor, getNonRolloverBorder, getRolloverBorder, installComponents, installDefaults, installKeyboardActions, installListeners, installNonRolloverBorders, installNormalBorders, installRolloverBorders, isFloating, isRolloverBorders, navigateFocusedComp, paintDragWindow, setBorderToNonRollover, setBorderToNormal, setBorderToRollover, setDockingColor, setFloating, setFloatingColor, setFloatingLocation, setOrientation, setRolloverBorders, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners`
  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 `BasicToolBarUI.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`.
  `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 `BasicToolBarUI.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 `BasicToolBarUI.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 ComponentUI

  `contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, installUI, paint, uninstallUI`
  Modifier and Type
  Method
  Description
  `boolean`
  `contains(JComponent c, int x, int y)`
  Returns `true` if the specified x,y location is contained within the look and feel's defined shape of the specified component.
  `Accessible`
  `getAccessibleChild(JComponent c, int i)`
  Returns the `i`th `Accessible` child of the object.
  `int`
  `getAccessibleChildrenCount(JComponent c)`
  Returns the number of accessible children in the object.
  `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.
  `Dimension`
  `getMinimumSize(JComponent c)`
  Returns the specified component's minimum size appropriate for the look and feel.
  `Dimension`
  `getPreferredSize(JComponent c)`
  Returns the specified component's preferred size appropriate for the look and feel.
  `void`
  `installUI(JComponent c)`
  Configures the specified component appropriately for the look and feel.
  `void`
  `paint(Graphics g, JComponent c)`
  Paints the specified component appropriately for the look and feel.
  `void`
  `uninstallUI(JComponent c)`
  Reverses configuration which was done on the specified component during `installUI`.

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

  - ### contListener

    protected ContainerListener contListener
    This protected field is implementation specific. Do not access directly or override. Use the create method instead.
    See Also:
      - `createContainerListener()`

  - ### rolloverListener

    protected PropertyChangeListener rolloverListener
    This protected field is implementation specific. Do not access directly or override. Use the create method instead.
    See Also:
      - `createRolloverListener()`

- ## Constructor Details

  - ### MetalToolBarUI

    public MetalToolBarUI()
    Constructs a `MetalToolBarUI`.

- ## Method Details

  - ### createUI

    public static ComponentUI createUI(JComponent c)
    Constructs an instance of `MetalToolBarUI`.
    Parameters:
      `c` - a component
    Returns:
      an instance of `MetalToolBarUI`

  - ### createContainerListener

    protected ContainerListener createContainerListener()
    Creates a container listener that will be added to the JToolBar. If this method returns null then it will not be added to the toolbar.
    Returns:
      an instance of a `ContainerListener` or null

  - ### createRolloverListener

    protected PropertyChangeListener createRolloverListener()
    Creates a property change listener that will be added to the JToolBar. If this method returns null then it will not be added to the toolbar.
    Returns:
      an instance of a `PropertyChangeListener` or null

  - ### setDragOffset

    protected void setDragOffset(Point p)
    Sets the offset of the mouse cursor inside the DragWindow.
    Parameters:
      `p` - the offset

  - ### update

    public void update(Graphics g, JComponent c)
    If necessary paints the background of the component, then invokes `paint`.
    Overrides:
      `update` in class `ComponentUI`
    Parameters:
      `g` - Graphics to paint to
      `c` - JComponent painting on
    Throws:
      `NullPointerException` - if `g` or `c` is null
    Since:
      1.5
    See Also:
      - `ComponentUI.update(Graphics, JComponent)`
      - `ComponentUI.paint(Graphics, JComponent)`