Module java.desktop

Class BasicTabbedPaneUI

All Implemented Interfaces:
SwingConstants
Direct Known Subclasses:
MetalTabbedPaneUI, SynthTabbedPaneUI

public class BasicTabbedPaneUI
extends TabbedPaneUI
implements SwingConstants
A Basic L&F implementation of TabbedPaneUI.
  • Field Details

    • tabPane

      protected JTabbedPane tabPane
      The tab pane
    • highlight

      protected Color highlight
      Highlight color
    • lightHighlight

      protected Color lightHighlight
      Light highlight color
    • shadow

      protected Color shadow
      Shadow color
    • darkShadow

      protected Color darkShadow
      Dark shadow color
    • focus

      protected Color focus
      Focus color
    • textIconGap

      protected int textIconGap
      Text icon gap
    • tabRunOverlay

      protected int tabRunOverlay
      Tab run overlay
    • tabInsets

      protected Insets tabInsets
      Tab insets
    • selectedTabPadInsets

      protected Insets selectedTabPadInsets
      Selected tab insets
    • tabAreaInsets

      protected Insets tabAreaInsets
      Tab area insets
    • contentBorderInsets

      protected Insets contentBorderInsets
      Content border insets
    • 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.
    • tabRuns

      protected int[] tabRuns
      Tab runs
    • runCount

      protected int runCount
      Run count
    • selectedRun

      protected int selectedRun
      Selected run
    • rects

      protected Rectangle[] rects
      Tab rects
    • maxTabHeight

      protected int maxTabHeight
      Maximum tab height
    • maxTabWidth

      protected int maxTabWidth
      Maximum tab width
    • tabChangeListener

      protected ChangeListener tabChangeListener
      Tab change listener
    • propertyChangeListener

      protected PropertyChangeListener propertyChangeListener
      Property change listener
    • mouseListener

      protected MouseListener mouseListener
      Mouse change listener
    • focusListener

      protected FocusListener focusListener
      Focus change listener
    • calcRect

      protected transient Rectangle calcRect
      A rectangle used for general layout calculations in order to avoid constructing many new Rectangles on the fly.
  • Constructor Details

  • Method Details

    • createUI

      public static ComponentUI createUI​(JComponent c)
      Create a UI.
      Parameters:
      c - a component
      Returns:
      a UI
    • createLayoutManager

      protected LayoutManager createLayoutManager()
      Invoked by installUI to create a layout manager object to manage the JTabbedPane.
      Returns:
      a layout manager object
      See Also:
      BasicTabbedPaneUI.TabbedPaneLayout, JTabbedPane.getTabLayoutPolicy()
    • installComponents

      protected void installComponents()
      Creates and installs any required subcomponents for the JTabbedPane. Invoked by installUI.
      Since:
      1.4
    • 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.
      Parameters:
      direction - One of the SwingConstants constants: SOUTH, NORTH, EAST or WEST
      Returns:
      Widget for user to
      Throws:
      IllegalArgumentException - if direction is not one of NORTH, SOUTH, EAST or WEST
      Since:
      1.5
      See Also:
      JTabbedPane.setTabPlacement(int), SwingConstants
    • uninstallComponents

      protected void uninstallComponents()
      Removes any installed subcomponents from the JTabbedPane. Invoked by uninstallUI.
      Since:
      1.4
    • installDefaults

      protected void installDefaults()
      Install the defaults.
    • uninstallDefaults

      protected void uninstallDefaults()
      Uninstall the defaults.
    • installListeners

      protected void installListeners()
      Install the listeners.
    • uninstallListeners

      protected void uninstallListeners()
      Uninstall the listeners.
    • createMouseListener

      protected MouseListener createMouseListener()
      Creates a mouse listener.
      Returns:
      a mouse listener
    • createFocusListener

      protected FocusListener createFocusListener()
      Creates a focus listener.
      Returns:
      a focus listener
    • createChangeListener

      protected ChangeListener createChangeListener()
      Creates a change listener.
      Returns:
      a change listener
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      Creates a property change listener.
      Returns:
      a property change listener
    • installKeyboardActions

      protected void installKeyboardActions()
      Installs the keyboard actions.
    • uninstallKeyboardActions

      protected void uninstallKeyboardActions()
      Uninstalls the keyboard actions.
    • 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.
      Parameters:
      index - Index of the tab the mouse is over.
      Since:
      1.5
    • getRolloverTab

      protected int getRolloverTab()
      Returns the tab the mouse is currently over, or -1 if the mouse is no longer over any tab.
      Returns:
      the tab the mouse is currently over, or -1 if the mouse is no longer over any tab
      Since:
      1.5
    • getBaseline

      public int getBaseline​(JComponent c, int width, int height)
      Returns the baseline.
      Overrides:
      getBaseline in class ComponentUI
      Parameters:
      c - JComponent baseline is being requested for
      width - the width to get the baseline for
      height - the height to get the baseline for
      Returns:
      baseline or a value < 0 indicating there is no reasonable baseline
      Throws:
      NullPointerException - if c is null
      IllegalArgumentException - if width or height is < 0
      Since:
      1.6
      See Also:
      JComponent.getBaseline(int, int)
    • getBaselineResizeBehavior

      public Component.BaselineResizeBehavior getBaselineResizeBehavior​(JComponent c)
      Returns an enum indicating how the baseline of the component changes as the size changes.
      Overrides:
      getBaselineResizeBehavior in class ComponentUI
      Parameters:
      c - JComponent to return baseline resize behavior for
      Returns:
      an enum indicating how the baseline changes as the component size changes
      Throws:
      NullPointerException - if c is null
      Since:
      1.6
      See Also:
      JComponent.getBaseline(int, int)
    • getBaseline

      protected int getBaseline​(int tab)
      Returns the baseline for the specified tab.
      Parameters:
      tab - index of tab to get baseline for
      Returns:
      baseline or a value < 0 indicating there is no reasonable baseline
      Throws:
      IndexOutOfBoundsException - if index is out of range (index < 0 || index >= tab count)
      Since:
      1.6
    • getBaselineOffset

      protected int getBaselineOffset()
      Returns the amount the baseline is offset by. This is typically the same as getTabLabelShiftY.
      Returns:
      amount to offset the baseline by
      Since:
      1.6
    • paintTabArea

      protected void paintTabArea​(Graphics g, int tabPlacement, int selectedIndex)
      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.
      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
      Since:
      1.4
    • paintTab

      protected void paintTab​(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect)
      Paints a tab.
      Parameters:
      g - the graphics
      tabPlacement - the tab placement
      rects - rectangles
      tabIndex - the tab index
      iconRect - the icon rectangle
      textRect - the text rectangle
    • layoutLabel

      protected void layoutLabel​(int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected)
      Laysout a label.
      Parameters:
      tabPlacement - the tab placement
      metrics - the font metric
      tabIndex - the tab index
      title - the title
      icon - the icon
      tabRect - the tab rectangle
      iconRect - the icon rectangle
      textRect - the text rectangle
      isSelected - selection status
    • paintIcon

      protected void paintIcon​(Graphics g, int tabPlacement, int tabIndex, Icon icon, Rectangle iconRect, boolean isSelected)
      Paints an icon.
      Parameters:
      g - the graphics
      tabPlacement - the tab placement
      tabIndex - the tab index
      icon - the icon
      iconRect - the icon rectangle
      isSelected - selection status
    • paintText

      protected void paintText​(Graphics g, int tabPlacement, Font font, FontMetrics metrics, int tabIndex, String title, Rectangle textRect, boolean isSelected)
      Paints text.
      Parameters:
      g - the graphics
      tabPlacement - the tab placement
      font - the font
      metrics - the font metrics
      tabIndex - the tab index
      title - the title
      textRect - the text rectangle
      isSelected - selection status
    • getTabLabelShiftX

      protected int getTabLabelShiftX​(int tabPlacement, int tabIndex, boolean isSelected)
      Returns the tab label shift x.
      Parameters:
      tabPlacement - the tab placement
      tabIndex - the tab index
      isSelected - selection status
      Returns:
      the tab label shift x
    • getTabLabelShiftY

      protected int getTabLabelShiftY​(int tabPlacement, int tabIndex, boolean isSelected)
      Returns the tab label shift y.
      Parameters:
      tabPlacement - the tab placement
      tabIndex - the tab index
      isSelected - selection status
      Returns:
      the tab label shift y
    • paintFocusIndicator

      protected void paintFocusIndicator​(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
      Paints the focus indicator.
      Parameters:
      g - the graphics
      tabPlacement - the tab placement
      rects - rectangles
      tabIndex - the tab index
      iconRect - the icon rectangle
      textRect - the text rectangle
      isSelected - selection status
    • paintTabBorder

      protected void paintTabBorder​(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
      this function draws the border around each tab note that this function does now draw the background of the tab. that is done elsewhere
      Parameters:
      g - the graphics context in which to paint
      tabPlacement - the placement (left, right, bottom, top) of the tab
      tabIndex - the index of the tab with respect to other tabs
      x - the x coordinate of tab
      y - the y coordinate of tab
      w - the width of the tab
      h - the height of the tab
      isSelected - a boolean which determines whether or not the tab is selected
    • paintTabBackground

      protected void paintTabBackground​(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
      Paints the tab background.
      Parameters:
      g - the graphics context in which to paint
      tabPlacement - the placement (left, right, bottom, top) of the tab
      tabIndex - the index of the tab with respect to other tabs
      x - the x coordinate of tab
      y - the y coordinate of tab
      w - the width of the tab
      h - the height of the tab
      isSelected - a boolean which determines whether or not the tab is selected
    • paintContentBorder

      protected void paintContentBorder​(Graphics g, int tabPlacement, int selectedIndex)
      Paints the content border.
      Parameters:
      g - the graphics context in which to paint
      tabPlacement - the placement (left, right, bottom, top) of the tab
      selectedIndex - the tab index of the selected component
    • paintContentBorderTopEdge

      protected void paintContentBorderTopEdge​(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
      Paints the content border top edge.
      Parameters:
      g - the graphics context in which to paint
      tabPlacement - the placement (left, right, bottom, top) of the tab
      selectedIndex - the tab index of the selected component
      x - the x coordinate of tab
      y - the y coordinate of tab
      w - the width of the tab
      h - the height of the tab
    • paintContentBorderLeftEdge

      protected void paintContentBorderLeftEdge​(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
      Paints the content border left edge.
      Parameters:
      g - the graphics context in which to paint
      tabPlacement - the placement (left, right, bottom, top) of the tab
      selectedIndex - the tab index of the selected component
      x - the x coordinate of tab
      y - the y coordinate of tab
      w - the width of the tab
      h - the height of the tab
    • paintContentBorderBottomEdge

      protected void paintContentBorderBottomEdge​(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
      Paints the content border bottom edge.
      Parameters:
      g - the graphics context in which to paint
      tabPlacement - the placement (left, right, bottom, top) of the tab
      selectedIndex - the tab index of the selected component
      x - the x coordinate of tab
      y - the y coordinate of tab
      w - the width of the tab
      h - the height of the tab
    • paintContentBorderRightEdge

      protected void paintContentBorderRightEdge​(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
      Paints the content border right edge.
      Parameters:
      g - the graphics context in which to paint
      tabPlacement - the placement (left, right, bottom, top) of the tab
      selectedIndex - the tab index of the selected component
      x - the x coordinate of tab
      y - the y coordinate of tab
      w - the width of the tab
      h - the height of the tab
    • getTabBounds

      public Rectangle getTabBounds​(JTabbedPane pane, int i)
      Returns the bounds of the specified tab index. The bounds are with respect to the JTabbedPane's coordinate space.
      Specified by:
      getTabBounds in class TabbedPaneUI
      Parameters:
      pane - the pane
      i - the index
      Returns:
      the rectangle for the tab bounds
    • tabForCoordinate

      public int tabForCoordinate​(JTabbedPane pane, int x, int y)
      Returns the tab index which intersects the specified point in the JTabbedPane's coordinate space.
      Specified by:
      tabForCoordinate in class TabbedPaneUI
      Parameters:
      pane - the pane
      x - the x coordinate
      y - the y coordinate
      Returns:
      the tab for the coordinate
    • getTabBounds

      protected Rectangle getTabBounds​(int tabIndex, Rectangle dest)
      Returns the bounds of the specified tab in the coordinate space of the JTabbedPane component. This is required because the tab rects are by default defined in the coordinate space of the component where they are rendered, which could be the JTabbedPane (for WRAP_TAB_LAYOUT) or a ScrollableTabPanel (SCROLL_TAB_LAYOUT). This method should be used whenever the tab rectangle must be relative to the JTabbedPane itself and the result should be placed in a designated Rectangle object (rather than instantiating and returning a new Rectangle each time). The tab index parameter must be a valid tabbed pane tab index (0 to tab count - 1, inclusive). The destination rectangle parameter must be a valid Rectangle instance. The handling of invalid parameters is unspecified.
      Parameters:
      tabIndex - the index of the tab
      dest - the rectangle where the result should be placed
      Returns:
      the resulting rectangle
      Since:
      1.4
    • getVisibleComponent

      protected Component getVisibleComponent()
      Returns the visible component.
      Returns:
      the visible component
    • setVisibleComponent

      protected void setVisibleComponent​(Component component)
      Sets the visible component.
      Parameters:
      component - the component
    • assureRectsCreated

      protected void assureRectsCreated​(int tabCount)
      Assure the rectangles are created.
      Parameters:
      tabCount - the tab count
    • expandTabRunsArray

      protected void expandTabRunsArray()
      Expands the tab runs array.
    • getRunForTab

      protected int getRunForTab​(int tabCount, int tabIndex)
      Returns the run for a tab.
      Parameters:
      tabCount - the tab count
      tabIndex - the tab index.
      Returns:
      the run for a tab
    • lastTabInRun

      protected int lastTabInRun​(int tabCount, int run)
      Returns the last tab in a run.
      Parameters:
      tabCount - the tab count
      run - the run
      Returns:
      the last tab in a run
    • getTabRunOverlay

      protected int getTabRunOverlay​(int tabPlacement)
      Returns the tab run overlay.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      Returns:
      the tab run overlay
    • getTabRunIndent

      protected int getTabRunIndent​(int tabPlacement, int run)
      Returns the tab run indent.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      run - the tab run
      Returns:
      the tab run indent
    • shouldPadTabRun

      protected boolean shouldPadTabRun​(int tabPlacement, int run)
      Returns whether or not the tab run should be padded.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      run - the tab run
      Returns:
      whether or not the tab run should be padded
    • shouldRotateTabRuns

      protected boolean shouldRotateTabRuns​(int tabPlacement)
      Returns whether or not the tab run should be rotated.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      Returns:
      whether or not the tab run should be rotated
    • getIconForTab

      protected Icon getIconForTab​(int tabIndex)
      Returns the icon for a tab.
      Parameters:
      tabIndex - the index of the tab
      Returns:
      the icon for a tab
    • getTextViewForTab

      protected View getTextViewForTab​(int tabIndex)
      Returns the text View object required to render stylized text (HTML) for the specified tab or null if no specialized text rendering is needed for this tab. This is provided to support html rendering inside tabs.
      Parameters:
      tabIndex - the index of the tab
      Returns:
      the text view to render the tab's text or null if no specialized rendering is required
      Since:
      1.4
    • calculateTabHeight

      protected int calculateTabHeight​(int tabPlacement, int tabIndex, int fontHeight)
      Calculates the tab height.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      tabIndex - the index of the tab with respect to other tabs
      fontHeight - the font height
      Returns:
      the tab height
    • calculateMaxTabHeight

      protected int calculateMaxTabHeight​(int tabPlacement)
      Calculates the maximum tab height.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      Returns:
      the maximum tab height
    • calculateTabWidth

      protected int calculateTabWidth​(int tabPlacement, int tabIndex, FontMetrics metrics)
      Calculates the tab width.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      tabIndex - the index of the tab with respect to other tabs
      metrics - the font metrics
      Returns:
      the tab width
    • calculateMaxTabWidth

      protected int calculateMaxTabWidth​(int tabPlacement)
      Calculates the maximum tab width.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      Returns:
      the maximum tab width
    • calculateTabAreaHeight

      protected int calculateTabAreaHeight​(int tabPlacement, int horizRunCount, int maxTabHeight)
      Calculates the tab area height.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      horizRunCount - horizontal run count
      maxTabHeight - maximum tab height
      Returns:
      the tab area height
    • calculateTabAreaWidth

      protected int calculateTabAreaWidth​(int tabPlacement, int vertRunCount, int maxTabWidth)
      Calculates the tab area width.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      vertRunCount - vertical run count
      maxTabWidth - maximum tab width
      Returns:
      the tab area width
    • getTabInsets

      protected Insets getTabInsets​(int tabPlacement, int tabIndex)
      Returns the tab insets.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      tabIndex - the tab index
      Returns:
      the tab insets
    • getSelectedTabPadInsets

      protected Insets getSelectedTabPadInsets​(int tabPlacement)
      Returns the selected tab pad insets.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      Returns:
      the selected tab pad insets
    • getTabAreaInsets

      protected Insets getTabAreaInsets​(int tabPlacement)
      Returns the tab area insets.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      Returns:
      the pad area insets
    • getContentBorderInsets

      protected Insets getContentBorderInsets​(int tabPlacement)
      Returns the content border insets.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      Returns:
      the content border insets
    • getFontMetrics

      protected FontMetrics getFontMetrics()
      Returns the font metrics.
      Returns:
      the font metrics
    • navigateSelectedTab

      protected void navigateSelectedTab​(int direction)
      Navigate the selected tab.
      Parameters:
      direction - the direction
    • selectNextTabInRun

      protected void selectNextTabInRun​(int current)
      Select the next tab in the run.
      Parameters:
      current - the current tab
    • selectPreviousTabInRun

      protected void selectPreviousTabInRun​(int current)
      Select the previous tab in the run.
      Parameters:
      current - the current tab
    • selectNextTab

      protected void selectNextTab​(int current)
      Select the next tab.
      Parameters:
      current - the current tab
    • selectPreviousTab

      protected void selectPreviousTab​(int current)
      Select the previous tab.
      Parameters:
      current - the current tab
    • selectAdjacentRunTab

      protected void selectAdjacentRunTab​(int tabPlacement, int tabIndex, int offset)
      Selects an adjacent run of tabs.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      tabIndex - the index of the tab with respect to other tabs
      offset - selection offset
    • getFocusIndex

      protected int getFocusIndex()
      Returns the index of the tab that has focus.
      Returns:
      index of tab that has focus
      Since:
      1.5
    • getTabRunOffset

      protected int getTabRunOffset​(int tabPlacement, int tabCount, int tabIndex, boolean forward)
      Returns the tab run offset.
      Parameters:
      tabPlacement - the placement (left, right, bottom, top) of the tab
      tabCount - the tab count
      tabIndex - the index of the tab with respect to other tabs
      forward - forward or not
      Returns:
      the tab run offset
    • getPreviousTabIndex

      protected int getPreviousTabIndex​(int base)
      Returns the previous tab index.
      Parameters:
      base - the base
      Returns:
      the previous tab index
    • getNextTabIndex

      protected int getNextTabIndex​(int base)
      Returns the next tab index.
      Parameters:
      base - the base
      Returns:
      the next tab index
    • getNextTabIndexInRun

      protected int getNextTabIndexInRun​(int tabCount, int base)
      Returns the next tab index in the run.
      Parameters:
      tabCount - the tab count
      base - the base
      Returns:
      the next tab index in the run
    • getPreviousTabIndexInRun

      protected int getPreviousTabIndexInRun​(int tabCount, int base)
      Returns the previous tab index in the run.
      Parameters:
      tabCount - the tab count
      base - the base
      Returns:
      the previous tab index in the run
    • getPreviousTabRun

      protected int getPreviousTabRun​(int baseRun)
      Returns the previous tab run.
      Parameters:
      baseRun - the base run
      Returns:
      the previous tab run
    • getNextTabRun

      protected int getNextTabRun​(int baseRun)
      Returns the next tab run.
      Parameters:
      baseRun - the base run
      Returns:
      the next tab run
    • rotateInsets

      protected static void rotateInsets​(Insets topInsets, Insets targetInsets, int targetPlacement)
      Rotates the insets.
      Parameters:
      topInsets - the top insets
      targetInsets - the target insets
      targetPlacement - the target placement