com.jgoodies.looks.windows

## Class WindowsTabbedPaneUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.TabbedPaneUI
    - - javax.swing.plaf.basic.BasicTabbedPaneUI
      - - com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI
        - - com.jgoodies.looks.windows.WindowsTabbedPaneUI

- All Implemented Interfaces:
    SwingConstants

      public final class WindowsTabbedPaneUI
      extends com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI

  The JGoodies Windows L&F implementation of `TabbedPaneUI`.

  The flat appearance is work in progress; currently it works only for a single line of tabs and paints distored tabs for multiple lines.

  Version:
    $Revision: 1.11 $
  Author:
    Karsten Lentzsch

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected PropertyChangeListener` | `createPropertyChangeListener()` Creates and answer a handler that listens to property changes.
    `static ComponentUI` | `createUI(JComponent x)` Creates and answers the `WindowsTabbedPaneUI`.
    `protected Insets` | `getContentBorderInsets(int tabPlacement)`
    `protected Icon` | `getIconForTab(int tabIndex)` Answers the icon for the tab with the specified index.
    `protected Insets` | `getSelectedTabPadInsets(int tabPlacement)`
    `protected Insets` | `getTabAreaInsets(int tabPlacement)`
    `protected int` | `getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)`
    `protected int` | `getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)`
    `void` | `installUI(JComponent c)` Installs the UI.
    `protected void` | `layoutLabel(int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected)` Copied here from super(super)class to avoid labels being centered on vertical tab runs if they consist of icon and text.
    `protected void` | `paintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)` Paints the bottom edge of the pane's content border.
    `protected void` | `paintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)` Paints the left Edge of the pane's content border.
    `protected void` | `paintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)` Paints the right Edge of the pane's content border.
    `protected void` | `paintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)` Paints the top edge of the pane's content border.
    `protected void` | `paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rectangles, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)`
    `protected void` | `paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)` Paints the border for a single tab; it does not paint the tab's background.
    `protected boolean` | `shouldRotateTabRuns(int tabPlacement)`

    - ### Methods inherited from class com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI

      `installDefaults, paintContentBorder, paintTabBackground, setRolloverTab, uninstallDefaults`

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

      `assureRectsCreated, calculateMaxTabHeight, calculateMaxTabWidth, calculateTabAreaHeight, calculateTabAreaWidth, calculateTabHeight, calculateTabWidth, createChangeListener, createFocusListener, createLayoutManager, createMouseListener, createScrollButton, expandTabRunsArray, getBaseline, getBaseline, getBaselineOffset, getBaselineResizeBehavior, getFocusIndex, getFontMetrics, getMaximumSize, getMinimumSize, getNextTabIndex, getNextTabIndexInRun, getNextTabRun, getPreviousTabIndex, getPreviousTabIndexInRun, getPreviousTabRun, getRolloverTab, getRunForTab, getTabBounds, getTabBounds, getTabInsets, getTabRunCount, getTabRunIndent, getTabRunOffset, getTabRunOverlay, getTextViewForTab, getVisibleComponent, installComponents, installKeyboardActions, installListeners, lastTabInRun, navigateSelectedTab, paint, paintIcon, paintTab, paintTabArea, paintText, rotateInsets, selectAdjacentRunTab, selectNextTab, selectNextTabInRun, selectPreviousTab, selectPreviousTabInRun, setVisibleComponent, shouldPadTabRun, tabForCoordinate, uninstallComponents, uninstallKeyboardActions, uninstallListeners, uninstallUI`

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

      `contains, getAccessibleChild, getAccessibleChildrenCount, getPreferredSize, update`

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

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

- - ### Constructor Detail

    - #### WindowsTabbedPaneUI

          public WindowsTabbedPaneUI()

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI(JComponent x)

      Creates and answers the `WindowsTabbedPaneUI`.
      See Also:
        `ComponentUI.createUI(JComponent)`

    - #### installUI

          public void installUI(JComponent c)

      Installs the UI.
      Overrides:
        `installUI` in class `BasicTabbedPaneUI`
      See Also:
        `ComponentUI.installUI(JComponent)`

    - #### createPropertyChangeListener

          protected PropertyChangeListener createPropertyChangeListener()

      Creates and answer a handler that listens to property changes. Unlike the superclass BasicTabbedPane, the PlasticTabbedPaneUI uses an extended Handler.
      Overrides:
        `createPropertyChangeListener` in class `BasicTabbedPaneUI`

    - #### getIconForTab

          protected Icon getIconForTab(int tabIndex)

      Answers the icon for the tab with the specified index. In case, we have globally switched of the use tab icons, we answer `null` if and only if we have a title.
      Overrides:
        `getIconForTab` in class `BasicTabbedPaneUI`

    - #### getContentBorderInsets

          protected Insets getContentBorderInsets(int tabPlacement)

      Overrides:
        `getContentBorderInsets` 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`

    - #### getSelectedTabPadInsets

          protected Insets getSelectedTabPadInsets(int tabPlacement)

      Overrides:
        `getSelectedTabPadInsets` in class `BasicTabbedPaneUI`

    - #### getTabAreaInsets

          protected Insets getTabAreaInsets(int tabPlacement)

      Overrides:
        `getTabAreaInsets` in class `BasicTabbedPaneUI`

    - #### paintContentBorderTopEdge

          protected void paintContentBorderTopEdge(Graphics g,
                                       int tabPlacement,
                                       int selectedIndex,
                                       int x,
                                       int y,
                                       int w,
                                       int h)

      Paints the top edge of the pane's content border.
      Overrides:
        `paintContentBorderTopEdge` in class `BasicTabbedPaneUI`

    - #### paintContentBorderBottomEdge

          protected void paintContentBorderBottomEdge(Graphics g,
                                          int tabPlacement,
                                          int selectedIndex,
                                          int x,
                                          int y,
                                          int w,
                                          int h)

      Paints the bottom edge of the pane's content border.
      Overrides:
        `paintContentBorderBottomEdge` in class `BasicTabbedPaneUI`

    - #### paintContentBorderLeftEdge

          protected void paintContentBorderLeftEdge(Graphics g,
                                        int tabPlacement,
                                        int selectedIndex,
                                        int x,
                                        int y,
                                        int w,
                                        int h)

      Paints the left Edge of the pane's content border.
      Overrides:
        `paintContentBorderLeftEdge` in class `BasicTabbedPaneUI`

    - #### paintContentBorderRightEdge

          protected void paintContentBorderRightEdge(Graphics g,
                                         int tabPlacement,
                                         int selectedIndex,
                                         int x,
                                         int y,
                                         int w,
                                         int h)

      Paints the right Edge of the pane's content border.
      Overrides:
        `paintContentBorderRightEdge` in class `BasicTabbedPaneUI`

    - #### paintTabBorder

          protected void paintTabBorder(Graphics g,
                            int tabPlacement,
                            int tabIndex,
                            int x,
                            int y,
                            int w,
                            int h,
                            boolean isSelected)

      Paints the border for a single tab; it does not paint the tab's background.
      Overrides:
        `paintTabBorder` in class `com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI`

    - #### paintFocusIndicator

          protected void paintFocusIndicator(Graphics g,
                                 int tabPlacement,
                                 Rectangle[] rectangles,
                                 int tabIndex,
                                 Rectangle iconRect,
                                 Rectangle textRect,
                                 boolean isSelected)

      Overrides:
        `paintFocusIndicator` in class `BasicTabbedPaneUI`

    - #### shouldRotateTabRuns

          protected boolean shouldRotateTabRuns(int tabPlacement)

      Overrides:
        `shouldRotateTabRuns` in class `BasicTabbedPaneUI`

    - #### layoutLabel

          protected void layoutLabel(int tabPlacement,
                         FontMetrics metrics,
                         int tabIndex,
                         String title,
                         Icon icon,
                         Rectangle tabRect,
                         Rectangle iconRect,
                         Rectangle textRect,
                         boolean isSelected)

      Copied here from super(super)class to avoid labels being centered on vertical tab runs if they consist of icon and text.
      Overrides:
        `layoutLabel` in class `BasicTabbedPaneUI`

Copyright © 2001-2014 JGoodies Software GmbH. All Rights Reserved.