javax.swing.plaf.synth

## Class SynthTabbedPaneUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.TabbedPaneUI
    - - javax.swing.plaf.basic.BasicTabbedPaneUI
      - - javax.swing.plaf.synth.SynthTabbedPaneUI

All Implemented Interfaces:
  PropertyChangeListener, EventListener, SynthConstants, SynthUI, SwingConstants

    public class SynthTabbedPaneUI
    extends BasicTabbedPaneUI
    implements PropertyChangeListener, SynthUI

Provides the Synth L&F UI delegate for `JTabbedPane`.

Looks up the `selectedTabPadInsets` property from the Style, which represents additional insets for the selected tab.

Since:
  1.7

### Nested Class Summary

### Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI

`BasicTabbedPaneUI.FocusHandler, BasicTabbedPaneUI.MouseHandler, BasicTabbedPaneUI.PropertyChangeHandler, BasicTabbedPaneUI.TabbedPaneLayout, BasicTabbedPaneUI.TabSelectionHandler`

### Field Summary

### Fields inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI

`calcRect, contentBorderInsets, darkShadow, downKey, focus, focusListener, highlight, leftKey, lightHighlight, maxTabHeight, maxTabWidth, mouseListener, propertyChangeListener, rects, rightKey, runCount, selectedRun, selectedTabPadInsets, shadow, tabAreaInsets, tabChangeListener, tabInsets, tabPane, tabRunOverlay, tabRuns, textIconGap, upKey`

### Fields inherited from interface javax.swing.plaf.synth.SynthConstants

`DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED`

### Fields inherited from 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 and Description
`SynthTabbedPaneUI()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected int` `calculateMaxTabHeight(int tabPlacement)`
`protected int` `calculateMaxTabWidth(int tabPlacement)`
`protected int` `calculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics)`
`protected LayoutManager` `createLayoutManager()` Invoked by `installUI` to create a layout manager object to manage the `JTabbedPane`.
`protected MouseListener` `createMouseListener()` Overridden to keep track of whether the selected tab is also pressed.
`protected JButton` `createScrollButton(int direction)` Creates and returns a JButton that will provide the user with a way to scroll the tabs in a particular direction.
`static ComponentUI` `createUI(JComponent c)` Creates a new UI object for the given component.
`protected int` `getBaseline(int tab)` Returns the baseline for the specified tab.
`SynthContext` `getContext(JComponent c)` Returns the Context for the specified component.
`protected FontMetrics` `getFontMetrics()`
`protected Insets` `getTabInsets(int tabPlacement, int tabIndex)`
`protected int` `getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)`
`protected int` `getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)`
`protected void` `installDefaults()`
`protected void` `installListeners()`
`void` `paint(Graphics g, JComponent c)` Paints the specified component according to the Look and Feel.
`protected void` `paint(SynthContext context, Graphics g)` Paints the specified component.
`void` `paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)` Paints the border.
`protected void` `paintTabArea(Graphics g, int tabPlacement, int selectedIndex)` Paints the tabs in the tab area.
`void` `propertyChange(PropertyChangeEvent e)` This method gets called when a bound property is changed.
`protected void` `setRolloverTab(int index)` Sets the tab the mouse is currently over to `index`.
`protected void` `uninstallDefaults()`
`protected void` `uninstallListeners()`
`void` `update(Graphics g, JComponent c)` Notifies this UI delegate to repaint the specified component.

### Methods inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI

`assureRectsCreated, calculateTabAreaHeight, calculateTabAreaWidth, calculateTabHeight, createChangeListener, createFocusListener, createPropertyChangeListener, expandTabRunsArray, getBaseline, getBaselineOffset, getBaselineResizeBehavior, getContentBorderInsets, getFocusIndex, getIconForTab, getMaximumSize, getMinimumSize, getNextTabIndex, getNextTabIndexInRun, getNextTabRun, getPreviousTabIndex, getPreviousTabIndexInRun, getPreviousTabRun, getRolloverTab, getRunForTab, getSelectedTabPadInsets, getTabAreaInsets, getTabBounds, getTabBounds, getTabRunCount, getTabRunIndent, getTabRunOffset, getTabRunOverlay, getTextViewForTab, getVisibleComponent, installComponents, installKeyboardActions, installUI, lastTabInRun, layoutLabel, navigateSelectedTab, paintContentBorder, paintContentBorderBottomEdge, paintContentBorderLeftEdge, paintContentBorderRightEdge, paintContentBorderTopEdge, paintFocusIndicator, paintIcon, paintTab, paintTabBackground, paintTabBorder, paintText, rotateInsets, selectAdjacentRunTab, selectNextTab, selectNextTabInRun, selectPreviousTab, selectPreviousTabInRun, setVisibleComponent, shouldPadTabRun, shouldRotateTabRuns, tabForCoordinate, uninstallComponents, uninstallKeyboardActions, uninstallUI`

### Methods inherited from class javax.swing.plaf.ComponentUI

`contains, getAccessibleChild, getAccessibleChildrenCount, getPreferredSize`

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### SynthTabbedPaneUI

    public SynthTabbedPaneUI()

### Method Detail

#### createUI

    public static ComponentUI createUI(JComponent c)

Creates a new UI object for the given component.

Parameters:
  `c` - component to create UI object for
Returns:
  the UI object

#### installDefaults

    protected void installDefaults()

Overrides:
  `installDefaults` in class `BasicTabbedPaneUI`

#### installListeners

    protected void installListeners()

Overrides:
  `installListeners` in class `BasicTabbedPaneUI`

#### uninstallListeners

    protected void uninstallListeners()

Overrides:
  `uninstallListeners` in class `BasicTabbedPaneUI`

#### uninstallDefaults

    protected void uninstallDefaults()

Overrides:
  `uninstallDefaults` in class `BasicTabbedPaneUI`

#### getContext

    public SynthContext getContext(JComponent c)

Returns the Context for the specified component.

Specified by:
  `getContext` in interface `SynthUI`
Parameters:
  `c` - Component requesting SynthContext.
Returns:
  SynthContext describing component.

#### createScrollButton

    protected JButton createScrollButton(int direction)

Creates and returns a JButton that will provide the user with a way to scroll the tabs in a particular direction. The returned JButton must be instance of UIResource.

Overrides:
  `createScrollButton` in class `BasicTabbedPaneUI`
Parameters:
  `direction` - One of the SwingConstants constants: SOUTH, NORTH, EAST or WEST
Returns:
  Widget for user to
See Also:
  `JTabbedPane.setTabPlacement(int)`, `SwingConstants`

#### propertyChange

    public void propertyChange(PropertyChangeEvent e)

This method gets called when a bound property is changed.

Specified by:
  `propertyChange` in interface `PropertyChangeListener`
Parameters:
  `e` - A PropertyChangeEvent object describing the event source and the property that has changed.

#### createMouseListener

    protected MouseListener createMouseListener()

Overridden to keep track of whether the selected tab is also pressed.

Overrides:
  `createMouseListener` in class `BasicTabbedPaneUI`

#### getTabLabelShiftX

    protected int getTabLabelShiftX(int tabPlacement,
                                    int tabIndex,
                                    boolean isSelected)

Overrides:
  `getTabLabelShiftX` in class `BasicTabbedPaneUI`

#### getTabLabelShiftY

    protected int getTabLabelShiftY(int tabPlacement,
                                    int tabIndex,
                                    boolean isSelected)

Overrides:
  `getTabLabelShiftY` in class `BasicTabbedPaneUI`

#### update

    public void update(Graphics g,
                       JComponent c)

Notifies this UI delegate to repaint the specified component. This method paints the component background, then calls the `paint(SynthContext,Graphics)` method.

In general, this method does not need to be overridden by subclasses. All Look and Feel rendering code should reside in the `paint` method.

Overrides:
  `update` in class `ComponentUI`
Parameters:
  `g` - the `Graphics` object used for painting
  `c` - the component being painted
See Also:
  `paint(SynthContext,Graphics)`

#### getBaseline

    protected int getBaseline(int tab)

Returns the baseline for the specified tab.

Overrides:
  `getBaseline` in class `BasicTabbedPaneUI`
Parameters:
  `tab` - index of tab to get baseline for
Returns:
  baseline or a value < 0 indicating there is no reasonable baseline

#### paintBorder

    public void paintBorder(SynthContext context,
                            Graphics g,
                            int x,
                            int y,
                            int w,
                            int h)

Paints the border.

Specified by:
  `paintBorder` in interface `SynthUI`
Parameters:
  `context` - a component context
  `g` - `Graphics` to paint on
  `x` - the X coordinate
  `y` - the Y coordinate
  `w` - width of the border
  `h` - height of the border

#### paint

    public void paint(Graphics g,
                      JComponent c)

Paints the specified component according to the Look and Feel.

This method is not used by Synth Look and Feel. Painting is handled by the `paint(SynthContext,Graphics)` method.

Overrides:
  `paint` in class `BasicTabbedPaneUI`
Parameters:
  `g` - the `Graphics` object used for painting
  `c` - the component being painted
See Also:
  `paint(SynthContext,Graphics)`

#### paint

    protected void paint(SynthContext context,
                         Graphics g)

Paints the specified component.

Parameters:
  `context` - context for the component being painted
  `g` - the `Graphics` object used for painting
See Also:
  `update(Graphics,JComponent)`

#### paintTabArea

    protected void paintTabArea(Graphics g,
                                int tabPlacement,
                                int selectedIndex)

Description copied from class: `BasicTabbedPaneUI`
Paints the tabs in the tab area. Invoked by paint(). The graphics parameter must be a valid `Graphics` object. Tab placement may be either: `JTabbedPane.TOP`, `JTabbedPane.BOTTOM`, `JTabbedPane.LEFT`, or `JTabbedPane.RIGHT`. The selected index must be a valid tabbed pane tab index (0 to tab count - 1, inclusive) or -1 if no tab is currently selected. The handling of invalid parameters is unspecified.

Overrides:
  `paintTabArea` in class `BasicTabbedPaneUI`
Parameters:
  `g` - the graphics object to use for rendering
  `tabPlacement` - the placement for the tabs within the JTabbedPane
  `selectedIndex` - the tab index of the selected component

#### setRolloverTab

    protected void setRolloverTab(int index)

Sets the tab the mouse is currently over to `index`. `index` will be -1 if the mouse is no longer over any tab. No checking is done to ensure the passed in index identifies a valid tab.

Overrides:
  `setRolloverTab` in class `BasicTabbedPaneUI`
Parameters:
  `index` - Index of the tab the mouse is over.

#### calculateMaxTabHeight

    protected int calculateMaxTabHeight(int tabPlacement)

Overrides:
  `calculateMaxTabHeight` in class `BasicTabbedPaneUI`

#### calculateTabWidth

    protected int calculateTabWidth(int tabPlacement,
                                    int tabIndex,
                                    FontMetrics metrics)

Overrides:
  `calculateTabWidth` in class `BasicTabbedPaneUI`

#### calculateMaxTabWidth

    protected int calculateMaxTabWidth(int tabPlacement)

Overrides:
  `calculateMaxTabWidth` in class `BasicTabbedPaneUI`

#### getTabInsets

    protected Insets getTabInsets(int tabPlacement,
                                  int tabIndex)

Overrides:
  `getTabInsets` in class `BasicTabbedPaneUI`

#### getFontMetrics

    protected FontMetrics getFontMetrics()

Overrides:
  `getFontMetrics` in class `BasicTabbedPaneUI`

#### createLayoutManager

    protected LayoutManager createLayoutManager()

Invoked by `installUI` to create a layout manager object to manage the `JTabbedPane`. Overridden to create a TabbedPaneLayout subclass which takes into account tabOverlap.

Overrides:
  `createLayoutManager` in class `BasicTabbedPaneUI`
Returns:
  a layout manager object
See Also:
  `BasicTabbedPaneUI.TabbedPaneLayout`, `JTabbedPane.getTabLayoutPolicy()`