Class FlatTabbedPaneUI

All Implemented Interfaces:
FlatStylingSupport.StyleableUI, FlatTitlePane.TitleBarCaptionHitTest, SwingConstants

Provides the Flat LaF UI delegate for JTabbedPane.
UiDefault:
TabbedPane.font Font, TabbedPane.background Color, TabbedPane.foreground Color, TabbedPane.shadow Color used for cropped line, TabbedPane.textIconGap int, TabbedPane.tabInsets Insets, TabbedPane.selectedTabPadInsets Insets unused, TabbedPane.tabAreaInsets Insets, TabbedPane.tabsOverlapBorder boolean, TabbedPane.tabRunOverlay int, TabbedPane.tabsOpaque boolean, TabbedPane.contentOpaque boolean unused, TabbedPane.opaque boolean, TabbedPane.selectionFollowsFocus boolean default is true , TabbedPane.disabledForeground Color, TabbedPane.selectedBackground Color optional, TabbedPane.selectedForeground Color optional, TabbedPane.underlineColor Color, TabbedPane.inactiveUnderlineColor Color, TabbedPane.disabledUnderlineColor Color, TabbedPane.hoverColor Color optional, TabbedPane.hoverForeground Color optional, TabbedPane.focusColor Color optional, TabbedPane.focusForeground Color optional, TabbedPane.tabSeparatorColor Color optional; defaults to TabbedPane.contentAreaColor, TabbedPane.contentAreaColor Color, TabbedPane.minimumTabWidth int optional, TabbedPane.maximumTabWidth int optional, TabbedPane.tabHeight int, TabbedPane.tabSelectionHeight int, TabbedPane.cardTabSelectionHeight int, TabbedPane.tabArc int, TabbedPane.tabSelectionArc int, TabbedPane.cardTabArc int, TabbedPane.selectedInsets Insets, TabbedPane.tabSelectionInsets Insets, TabbedPane.contentSeparatorHeight int, TabbedPane.showTabSeparators boolean, TabbedPane.tabSeparatorsFullHeight boolean, TabbedPane.hasFullBorder boolean, TabbedPane.rotateTabRuns boolean, TabbedPane.tabLayoutPolicy String wrap (default) or scroll, TabbedPane.tabType String underlined (default) or card, TabbedPane.tabsPopupPolicy String never or asNeeded (default), TabbedPane.scrollButtonsPolicy String never, asNeeded or asNeededSingle (default), TabbedPane.scrollButtonsPlacement String both (default) or trailing, TabbedPane.tabAreaAlignment String leading (default), center, trailing or fill, TabbedPane.tabAlignment String leading, center (default) or trailing, TabbedPane.tabWidthMode String preferred (default), equal or compact, TabbedPane.tabRotation String none (default), auto, left or right, ScrollPane.smoothScrolling boolean, TabbedPane.closeIcon Icon, TabbedPane.arrowType String chevron (default) or triangle, TabbedPane.buttonInsets Insets, TabbedPane.buttonArc int, TabbedPane.buttonHoverBackground Color, TabbedPane.buttonPressedBackground Color, TabbedPane.moreTabsButtonToolTipText String, TabbedPane.tabCloseToolTipText String
ClientProperty:
JTabbedPane.showTabSeparators boolean, JTabbedPane.hasFullBorder boolean
  • Field Details

    • TAB_TYPE_UNDERLINED

      protected static final int TAB_TYPE_UNDERLINED
      Since:
      2
      See Also:
    • TAB_TYPE_CARD

      protected static final int TAB_TYPE_CARD
      Since:
      2
      See Also:
    • NEVER

      protected static final int NEVER
      See Also:
    • AS_NEEDED

      protected static final int AS_NEEDED
      See Also:
    • AS_NEEDED_SINGLE

      protected static final int AS_NEEDED_SINGLE
      See Also:
    • BOTH

      protected static final int BOTH
      See Also:
    • FILL

      protected static final int FILL
      See Also:
    • WIDTH_MODE_PREFERRED

      protected static final int WIDTH_MODE_PREFERRED
      See Also:
    • WIDTH_MODE_EQUAL

      protected static final int WIDTH_MODE_EQUAL
      See Also:
    • WIDTH_MODE_COMPACT

      protected static final int WIDTH_MODE_COMPACT
      See Also:
    • WIDTH_MODE_ICON_ONLY

      protected static final int WIDTH_MODE_ICON_ONLY
      Since:
      3.7
      See Also:
    • NONE

      protected static final int NONE
      Since:
      3.3
      See Also:
    • AUTO

      protected static final int AUTO
      Since:
      3.3
      See Also:
    • foreground

      protected Color foreground
    • disabledForeground

      protected Color disabledForeground
    • selectedBackground

      protected Color selectedBackground
    • selectedForeground

      protected Color selectedForeground
    • underlineColor

      protected Color underlineColor
    • inactiveUnderlineColor

      protected Color inactiveUnderlineColor
      Since:
      2.2
    • disabledUnderlineColor

      protected Color disabledUnderlineColor
    • hoverColor

      protected Color hoverColor
    • hoverForeground

      protected Color hoverForeground
      Since:
      3.1
    • focusColor

      protected Color focusColor
    • focusForeground

      protected Color focusForeground
      Since:
      3.1
    • tabSeparatorColor

      protected Color tabSeparatorColor
    • contentAreaColor

      protected Color contentAreaColor
    • minimumTabWidth

      protected int minimumTabWidth
    • maximumTabWidth

      protected int maximumTabWidth
    • tabHeight

      protected int tabHeight
    • tabSelectionHeight

      protected int tabSelectionHeight
    • cardTabSelectionHeight

      protected int cardTabSelectionHeight
      Since:
      2
    • tabArc

      protected int tabArc
      Since:
      3.2
    • tabSelectionArc

      protected int tabSelectionArc
      Since:
      3.2
    • cardTabArc

      protected int cardTabArc
      Since:
      3.2
    • selectedInsets

      protected Insets selectedInsets
      Since:
      3.2
    • tabSelectionInsets

      protected Insets tabSelectionInsets
      Since:
      3.2
    • contentSeparatorHeight

      protected int contentSeparatorHeight
    • showTabSeparators

      protected boolean showTabSeparators
    • tabSeparatorsFullHeight

      protected boolean tabSeparatorsFullHeight
    • hasFullBorder

      protected boolean hasFullBorder
    • tabsOpaque

      protected boolean tabsOpaque
    • rotateTabRuns

      protected boolean rotateTabRuns
      Since:
      2.5
    • closeIcon

      protected Icon closeIcon
    • arrowType

      protected String arrowType
    • buttonInsets

      protected Insets buttonInsets
    • buttonArc

      protected int buttonArc
    • buttonHoverBackground

      protected Color buttonHoverBackground
    • buttonPressedBackground

      protected Color buttonPressedBackground
    • moreTabsButtonToolTipText

      protected String moreTabsButtonToolTipText
    • tabCloseToolTipText

      protected String tabCloseToolTipText
      Since:
      2
    • showContentSeparator

      protected boolean showContentSeparator
      Since:
      2
    • hideTabAreaWithOneTab

      protected boolean hideTabAreaWithOneTab
      Since:
      2
    • tabClosable

      protected boolean tabClosable
      Since:
      2
    • tabIconPlacement

      protected int tabIconPlacement
      Since:
      2
    • tabViewport

      protected JViewport tabViewport
    • wheelTabScroller

      protected FlatTabbedPaneUI.FlatWheelTabScroller wheelTabScroller
  • Constructor Details

    • FlatTabbedPaneUI

      public FlatTabbedPaneUI()
  • Method Details

    • createUI

      public static ComponentUI createUI(JComponent c)
    • installUI

      public void installUI(JComponent c)
      Overrides:
      installUI in class BasicTabbedPaneUI
    • installDefaults

      protected void installDefaults()
      Overrides:
      installDefaults in class BasicTabbedPaneUI
    • uninstallDefaults

      protected void uninstallDefaults()
      Overrides:
      uninstallDefaults in class BasicTabbedPaneUI
    • installComponents

      protected void installComponents()
      Overrides:
      installComponents in class BasicTabbedPaneUI
    • uninstallComponents

      protected void uninstallComponents()
      Overrides:
      uninstallComponents in class BasicTabbedPaneUI
    • installHiddenTabsNavigation

      protected void installHiddenTabsNavigation()
    • uninstallHiddenTabsNavigation

      protected void uninstallHiddenTabsNavigation()
    • installLeadingComponent

      protected void installLeadingComponent()
    • uninstallLeadingComponent

      protected void uninstallLeadingComponent()
    • installTrailingComponent

      protected void installTrailingComponent()
    • uninstallTrailingComponent

      protected void uninstallTrailingComponent()
    • installListeners

      protected void installListeners()
      Overrides:
      installListeners in class BasicTabbedPaneUI
    • uninstallListeners

      protected void uninstallListeners()
      Overrides:
      uninstallListeners in class BasicTabbedPaneUI
    • installKeyboardActions

      protected void installKeyboardActions()
      Overrides:
      installKeyboardActions in class BasicTabbedPaneUI
    • createWheelTabScroller

      protected FlatTabbedPaneUI.FlatWheelTabScroller createWheelTabScroller()
    • createMouseListener

      protected MouseListener createMouseListener()
      Overrides:
      createMouseListener in class BasicTabbedPaneUI
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      Overrides:
      createPropertyChangeListener in class BasicTabbedPaneUI
    • createChangeListener

      protected ChangeListener createChangeListener()
      Overrides:
      createChangeListener in class BasicTabbedPaneUI
    • createFocusListener

      protected FocusListener createFocusListener()
      Overrides:
      createFocusListener in class BasicTabbedPaneUI
    • createLayoutManager

      protected LayoutManager createLayoutManager()
      Overrides:
      createLayoutManager in class BasicTabbedPaneUI
    • createScrollLayoutManager

      protected LayoutManager createScrollLayoutManager(BasicTabbedPaneUI.TabbedPaneLayout delegate)
    • createMoreTabsButton

      protected JButton createMoreTabsButton()
    • createScrollButton

      protected JButton createScrollButton(int direction)
      Overrides:
      createScrollButton in class BasicTabbedPaneUI
    • installStyle

      protected void installStyle()
      Since:
      2
    • applyStyle

      protected void applyStyle(Object style)
      Since:
      2
    • applyStyleProperty

      protected Object applyStyleProperty(String key, Object value)
      Since:
      2
    • getStyleableInfos

      public Map<String,Class<?>> getStyleableInfos(JComponent c)
      Specified by:
      getStyleableInfos in interface FlatStylingSupport.StyleableUI
      Since:
      2
    • getStyleableValue

      public Object getStyleableValue(JComponent c, String key)
      Specified by:
      getStyleableValue in interface FlatStylingSupport.StyleableUI
      Since:
      2.5
    • setRolloverTab

      protected void setRolloverTab(int x, int y)
    • setRolloverTab

      protected void setRolloverTab(int index)
      Overrides:
      setRolloverTab in class BasicTabbedPaneUI
    • isRolloverTabClose

      protected boolean isRolloverTabClose()
    • setRolloverTabClose

      protected void setRolloverTabClose(boolean rollover)
    • isPressedTabClose

      protected boolean isPressedTabClose()
    • setPressedTabClose

      protected void setPressedTabClose(boolean pressed)
    • calculateTabWidth

      protected int calculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics)
      Overrides:
      calculateTabWidth in class BasicTabbedPaneUI
    • calculateTabHeight

      protected int calculateTabHeight(int tabPlacement, int tabIndex, int fontHeight)
      Overrides:
      calculateTabHeight in class BasicTabbedPaneUI
    • calculateMaxTabWidth

      protected int calculateMaxTabWidth(int tabPlacement)
      Overrides:
      calculateMaxTabWidth in class BasicTabbedPaneUI
    • calculateMaxTabHeight

      protected int calculateMaxTabHeight(int tabPlacement)
      Overrides:
      calculateMaxTabHeight in class BasicTabbedPaneUI
    • calculateTabAreaWidth

      protected int calculateTabAreaWidth(int tabPlacement, int vertRunCount, int maxTabWidth)
      Overrides:
      calculateTabAreaWidth in class BasicTabbedPaneUI
    • calculateTabAreaHeight

      protected int calculateTabAreaHeight(int tabPlacement, int horizRunCount, int maxTabHeight)
      Overrides:
      calculateTabAreaHeight in class BasicTabbedPaneUI
    • getTabInsets

      protected Insets getTabInsets(int tabPlacement, int tabIndex)
      Overrides:
      getTabInsets in class BasicTabbedPaneUI
    • getTabInsetsRotated

      protected Insets getTabInsetsRotated(int tabPlacement, int tabIndex, int rotation)
      Since:
      3.3
    • getSelectedTabPadInsets

      protected Insets getSelectedTabPadInsets(int tabPlacement)
      Overrides:
      getSelectedTabPadInsets in class BasicTabbedPaneUI
    • getRealTabAreaInsets

      protected Insets getRealTabAreaInsets(int tabPlacement)
    • getTabAreaInsets

      protected Insets getTabAreaInsets(int tabPlacement)
      Overrides:
      getTabAreaInsets in class BasicTabbedPaneUI
    • getContentBorderInsets

      protected Insets getContentBorderInsets(int tabPlacement)
      The content border insets are used to create a separator between tabs and content. If client property JTabbedPane.hasFullBorder is true, then the content border insets are also used for the border.
      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
    • update

      public void update(Graphics g, JComponent c)
      Overrides:
      update in class ComponentUI
    • paint

      public void paint(Graphics g, JComponent c)
      Overrides:
      paint in class BasicTabbedPaneUI
    • paintTabArea

      protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex)
      Overrides:
      paintTabArea in class BasicTabbedPaneUI
    • paintTab

      protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect)
      Overrides:
      paintTab in class BasicTabbedPaneUI
    • paintText

      protected void paintText(Graphics g, int tabPlacement, Font font, FontMetrics metrics, int tabIndex, String title, Rectangle textRect, boolean isSelected)
      Overrides:
      paintText in class BasicTabbedPaneUI
    • paintIcon

      protected void paintIcon(Graphics g, int tabPlacement, int tabIndex, Icon icon, Rectangle iconRect, boolean isSelected)
      Overrides:
      paintIcon in class BasicTabbedPaneUI
    • getTabForeground

      protected Color getTabForeground(int tabPlacement, int tabIndex, boolean isSelected)
      Since:
      3.1
    • paintTabBackground

      protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
      Overrides:
      paintTabBackground in class BasicTabbedPaneUI
    • getTabBackground

      protected Color getTabBackground(int tabPlacement, int tabIndex, boolean isSelected)
      Since:
      2
    • paintTabBorder

      protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
      Overrides:
      paintTabBorder in class BasicTabbedPaneUI
    • paintCardTabBorder

      protected void paintCardTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h)
      Since:
      2
    • createCardTabOuterPath

      protected Shape createCardTabOuterPath(int tabPlacement, int x, int y, int w, int h)
      Since:
      3.2
    • createCardTabInnerPath

      protected Shape createCardTabInnerPath(int tabPlacement, int x, int y, int w, int h)
      Since:
      3.2
    • paintTabCloseButton

      protected void paintTabCloseButton(Graphics g, int tabIndex, int x, int y, int w, int h)
    • paintTabSeparator

      protected void paintTabSeparator(Graphics g, int tabPlacement, int x, int y, int w, int h)
    • paintTabSelection

      protected void paintTabSelection(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h)
    • isTabbedPaneOrChildFocused

      protected boolean isTabbedPaneOrChildFocused()
      Since:
      2.2
    • paintContentBorder

      protected void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex)
      Actually does nearly the same as super.paintContentBorder() but - not using UIManager.getColor("TabbedPane.contentAreaColor") to be GUI builder friendly - tabsOverlapBorder is always true - paint full border (if enabled) - not invoking paintContentBorder*Edge() methods - repaint selection - painting active tab border style
      Overrides:
      paintContentBorder in class BasicTabbedPaneUI
    • paintFocusIndicator

      protected void paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
      Overrides:
      paintFocusIndicator in class BasicTabbedPaneUI
    • layoutAndClipLabel

      protected String layoutAndClipLabel(int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected)
    • getRealTabRotation

      protected int getRealTabRotation(int tabPlacement)
      Since:
      3.3
    • tabForCoordinate

      public int tabForCoordinate(JTabbedPane pane, int x, int y)
      Overrides:
      tabForCoordinate in class BasicTabbedPaneUI
    • getTabBounds

      protected Rectangle getTabBounds(int tabIndex, Rectangle dest)
      Overrides:
      getTabBounds in class BasicTabbedPaneUI
    • getTabCloseBounds

      protected Rectangle getTabCloseBounds(int tabIndex, int x, int y, int w, int h, Rectangle dest)
    • getTabCloseHitArea

      protected Rectangle getTabCloseHitArea(int tabIndex)
    • isTabClosable

      protected boolean isTabClosable(int tabIndex)
    • closeTab

      protected void closeTab(int tabIndex)
    • getTabClientProperty

      protected Object getTabClientProperty(int tabIndex, String key)
    • getTabClientPropertyInt

      protected int getTabClientPropertyInt(int tabIndex, String key, int defaultValue)
    • ensureCurrentLayout

      protected void ensureCurrentLayout()
    • shouldRotateTabRuns

      protected boolean shouldRotateTabRuns(int tabPlacement)
      Overrides:
      shouldRotateTabRuns in class BasicTabbedPaneUI
    • isHorizontalTabPlacement

      protected boolean isHorizontalTabPlacement(int tabPlacement)
      Since:
      3.3
    • isSmoothScrollingEnabled

      protected boolean isSmoothScrollingEnabled()
    • hideTabArea

      protected boolean hideTabArea()
    • getTabType

      protected int getTabType()
      Since:
      2
    • getTabsPopupPolicy

      protected int getTabsPopupPolicy()
    • getScrollButtonsPolicy

      protected int getScrollButtonsPolicy()
    • getScrollButtonsPlacement

      protected int getScrollButtonsPlacement()
    • getTabAreaAlignment

      protected int getTabAreaAlignment()
    • getTabAlignment

      protected int getTabAlignment(int tabIndex)
    • getTabWidthMode

      protected int getTabWidthMode()
    • getTabRotation

      protected int getTabRotation()
      Since:
      3.3
    • parseTabType

      protected static int parseTabType(String str)
      Since:
      2
    • parseTabsPopupPolicy

      protected static int parseTabsPopupPolicy(String str)
    • parseScrollButtonsPolicy

      protected static int parseScrollButtonsPolicy(String str)
    • parseScrollButtonsPlacement

      protected static int parseScrollButtonsPlacement(String str)
    • parseAlignment

      protected static int parseAlignment(String str, int defaultValue)
    • parseTabWidthMode

      protected static int parseTabWidthMode(String str)
    • parseTabRotation

      protected static int parseTabRotation(String str)
      Since:
      3.3
    • parseTabIconPlacement

      protected static int parseTabIconPlacement(String str)
    • ensureSelectedTabIsVisibleLater

      protected void ensureSelectedTabIsVisibleLater()
    • ensureSelectedTabIsVisible

      protected void ensureSelectedTabIsVisible()
    • isTitleBarCaptionAt

      public Boolean isTitleBarCaptionAt(int x, int y)
      Description copied from interface: FlatTitlePane.TitleBarCaptionHitTest
      Invoked for a component that is enabled and has mouse listeners, to check whether it processes mouse input at the given x/y location. Useful for components that do not use mouse input on whole component bounds. E.g. a tabbed pane with a few tabs has some empty space beside the tabs that can be used to move the window.

      Note:

      • This method is invoked often when mouse is moved over window title bar area and should therefore return quickly.
      • This method is invoked on 'AWT-Windows' thread (not 'AWT-EventQueue' thread) while processing Windows messages. It must not change any component property or layout because this could cause a dead lock.
      Specified by:
      isTitleBarCaptionAt in interface FlatTitlePane.TitleBarCaptionHitTest
      Returns:
      true if the component is not interested in mouse input at the given location false if the component wants process mouse input at the given location null if the component children should be checked
      Since:
      3.4