| JavaTM 2 Platform Std. Ed. v1.6.0
javax.swing.plaf.basic
Class BasicTabbedPaneUI
java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.TabbedPaneUI
javax.swing.plaf.basic.BasicTabbedPaneUI
- All Implemented Interfaces:
- SwingConstants
- Direct Known Subclasses:
- MetalTabbedPaneUI
public class BasicTabbedPaneUI - extends TabbedPaneUI
- implements SwingConstants
A Basic L&F implementation of TabbedPaneUI.
| 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 |
|
Method Summary |
protected void |
assureRectsCreated(int tabCount)
|
protected int |
calculateMaxTabHeight(int tabPlacement)
|
protected int |
calculateMaxTabWidth(int tabPlacement)
|
protected int |
calculateTabAreaHeight(int tabPlacement,
int horizRunCount,
int maxTabHeight)
|
protected int |
calculateTabAreaWidth(int tabPlacement,
int vertRunCount,
int maxTabWidth)
|
protected int |
calculateTabHeight(int tabPlacement,
int tabIndex,
int fontHeight)
|
protected int |
calculateTabWidth(int tabPlacement,
int tabIndex,
FontMetrics metrics)
|
protected ChangeListener |
createChangeListener()
|
protected FocusListener |
createFocusListener()
|
protected LayoutManager |
createLayoutManager()
Invoked by installUI to create
a layout manager object to manage
the JTabbedPane. |
protected MouseListener |
createMouseListener()
|
protected PropertyChangeListener |
createPropertyChangeListener()
|
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)
|
protected void |
expandTabRunsArray()
|
protected int |
getBaseline(int tab)
Returns the baseline for the specified tab. |
int |
getBaseline(JComponent c,
int width,
int height)
Returns the baseline. |
protected int |
getBaselineOffset()
Returns the amount the baseline is offset by. |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior(JComponent c)
Returns an enum indicating how the baseline of the component
changes as the size changes. |
protected Insets |
getContentBorderInsets(int tabPlacement)
|
protected int |
getFocusIndex()
Returns the index of the tab that has focus. |
protected FontMetrics |
getFontMetrics()
|
protected Icon |
getIconForTab(int tabIndex)
|
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. |
protected int |
getNextTabIndex(int base)
|
protected int |
getNextTabIndexInRun(int tabCount,
int base)
|
protected int |
getNextTabRun(int baseRun)
|
protected int |
getPreviousTabIndex(int base)
|
protected int |
getPreviousTabIndexInRun(int tabCount,
int base)
|
protected int |
getPreviousTabRun(int baseRun)
|
protected int |
getRolloverTab()
Returns the tab the mouse is currently over, or -1 if the mouse is no
longer over any tab. |
protected int |
getRunForTab(int tabCount,
int tabIndex)
|
protected Insets |
getSelectedTabPadInsets(int tabPlacement)
|
protected Insets |
getTabAreaInsets(int tabPlacement)
|
protected Rectangle |
getTabBounds(int tabIndex,
Rectangle dest)
Returns the bounds of the specified tab in the coordinate space
of the JTabbedPane component. |
Rectangle |
getTabBounds(JTabbedPane pane,
int i)
Returns the bounds of the specified tab index. |
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)
|
int |
getTabRunCount(JTabbedPane pane)
|
protected int |
getTabRunIndent(int tabPlacement,
int run)
|
protected int |
getTabRunOffset(int tabPlacement,
int tabCount,
int tabIndex,
boolean forward)
|
protected int |
getTabRunOverlay(int tabPlacement)
|
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. |
protected Component |
getVisibleComponent()
|
protected void |
installComponents()
Creates and installs any required subcomponents for the JTabbedPane. |
protected void |
installDefaults()
|
protected void |
installKeyboardActions()
|
protected void |
installListeners()
|
void |
installUI(JComponent c)
Configures the specified component appropriate for the look and feel. |
protected int |
lastTabInRun(int tabCount,
int run)
|
protected void |
layoutLabel(int tabPlacement,
FontMetrics metrics,
int tabIndex,
String title,
Icon icon,
Rectangle tabRect,
Rectangle iconRect,
Rectangle textRect,
boolean isSelected)
|
protected void |
navigateSelectedTab(int direction)
|
void |
paint(Graphics g,
JComponent c)
Paints the specified component appropriate for the look and feel. |
protected void |
paintContentBorder(Graphics g,
int tabPlacement,
int selectedIndex)
|
protected void |
paintContentBorderBottomEdge(Graphics g,
int tabPlacement,
int selectedIndex,
int x,
int y,
int w,
int h)
|
protected void |
paintContentBorderLeftEdge(Graphics g,
int tabPlacement,
int selectedIndex,
int x,
int y,
int w,
int h)
|
protected void |
paintContentBorderRightEdge(Graphics g,
int tabPlacement,
int selectedIndex,
int x,
int y,
int w,
int h)
|
protected void |
paintContentBorderTopEdge(Graphics g,
int tabPlacement,
int selectedIndex,
int x,
int y,
int w,
int h)
|
protected void |
paintFocusIndicator(Graphics g,
int tabPlacement,
Rectangle[] rects,
int tabIndex,
Rectangle iconRect,
Rectangle textRect,
boolean isSelected)
|
protected void |
paintIcon(Graphics g,
int tabPlacement,
int tabIndex,
Icon icon,
Rectangle iconRect,
boolean isSelected)
|
protected void |
paintTab(Graphics g,
int tabPlacement,
Rectangle[] rects,
int tabIndex,
Rectangle iconRect,
Rectangle textRect)
|
protected void |
paintTabArea(Graphics g,
int tabPlacement,
int selectedIndex)
Paints the tabs in the tab area. |
protected void |
paintTabBackground(Graphics g,
int tabPlacement,
int tabIndex,
int x,
int y,
int w,
int h,
boolean isSelected)
|
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. |
protected void |
paintText(Graphics g,
int tabPlacement,
Font font,
FontMetrics metrics,
int tabIndex,
String title,
Rectangle textRect,
boolean isSelected)
|
protected static void |
rotateInsets(Insets topInsets,
Insets targetInsets,
int targetPlacement)
|
protected void |
selectAdjacentRunTab(int tabPlacement,
int tabIndex,
int offset)
|
protected void |
selectNextTab(int current)
|
protected void |
selectNextTabInRun(int current)
|
protected void |
selectPreviousTab(int current)
|
protected void |
selectPreviousTabInRun(int current)
|
protected void |
setRolloverTab(int index)
Sets the tab the mouse is currently over to index. |
protected void |
setVisibleComponent(Component component)
|
protected boolean |
shouldPadTabRun(int tabPlacement,
int run)
|
protected boolean |
shouldRotateTabRuns(int tabPlacement)
|
int |
tabForCoordinate(JTabbedPane pane,
int x,
int y)
Returns the tab index which intersects the specified point
in the JTabbedPane's coordinate space. |
protected void |
uninstallComponents()
Removes any installed subcomponents from the JTabbedPane. |
protected void |
uninstallDefaults()
|
protected void |
uninstallKeyboardActions()
|
protected void |
uninstallListeners()
|
void |
uninstallUI(JComponent c)
Reverses configuration which was done on the specified component during
installUI. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
tabPane
protected JTabbedPane tabPane
highlight
protected Color highlight
lightHighlight
protected Color lightHighlight
shadow
protected Color shadow
darkShadow
protected Color darkShadow
focus
protected Color focus
textIconGap
protected int textIconGap
tabRunOverlay
protected int tabRunOverlay
tabInsets
protected Insets tabInsets
selectedTabPadInsets
protected Insets selectedTabPadInsets
tabAreaInsets
protected Insets tabAreaInsets
contentBorderInsets
protected Insets contentBorderInsets
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
runCount
protected int runCount
selectedRun
protected int selectedRun
rects
protected Rectangle[] rects
maxTabHeight
protected int maxTabHeight
maxTabWidth
protected int maxTabWidth
tabChangeListener
protected ChangeListener tabChangeListener
propertyChangeListener
protected PropertyChangeListener propertyChangeListener
mouseListener
protected MouseListener mouseListener
focusListener
protected FocusListener focusListener
calcRect
protected transient Rectangle calcRect
- A rectangle used for general layout calculations in order
to avoid constructing many new Rectangles on the fly.
BasicTabbedPaneUI
public BasicTabbedPaneUI()
createUI
public static ComponentUI createUI(JComponent c)
installUI
public void installUI(JComponent c)
- Description copied from class:
ComponentUI
- Configures the specified component appropriate for the look and feel.
This method is invoked when the
ComponentUI instance is being installed
as the UI delegate on the specified component. This method should
completely configure the component for the look and feel,
including the following:
- Install any default property values for color, fonts, borders,
icons, opacity, etc. on the component. Whenever possible,
property values initialized by the client program should not
be overridden.
- Install a
LayoutManager on the component if necessary.
- Create/add any required sub-components to the component.
- Create/install event listeners on the component.
- Create/install a
PropertyChangeListener on the component in order
to detect and respond to component property changes appropriately.
- Install keyboard UI (mnemonics, traversal, etc.) on the component.
- Initialize any appropriate instance data.
- Overrides:
installUI in class ComponentUI
- Parameters:
c - the component where this UI delegate is being installed- See Also:
ComponentUI.uninstallUI(javax.swing.JComponent),
JComponent.setUI(javax.swing.plaf.ComponentUI),
JComponent.updateUI()
uninstallUI
public void uninstallUI(JComponent c)
- Description copied from class:
ComponentUI
- Reverses configuration which was done on the specified component during
installUI. This method is invoked when this
UIComponent instance is being removed as the UI delegate
for the specified component. This method should undo the
configuration performed in installUI, being careful to
leave the JComponent instance in a clean state (no
extraneous listeners, look-and-feel-specific property objects, etc.).
This should include the following:
- Remove any UI-set borders from the component.
- Remove any UI-set layout managers on the component.
- Remove any UI-added sub-components from the component.
- Remove any UI-added event/property listeners from the component.
- Remove any UI-installed keyboard UI from the component.
- Nullify any allocated instance data objects to allow for GC.
- Overrides:
uninstallUI in class ComponentUI
- Parameters:
c - the component from which this UI delegate is being removed;
this argument is often ignored,
but might be used if the UI object is stateless
and shared by multiple components- See Also:
ComponentUI.installUI(javax.swing.JComponent),
JComponent.updateUI()
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()
uninstallDefaults
protected void uninstallDefaults()
installListeners
protected void installListeners()
uninstallListeners
protected void uninstallListeners()
createMouseListener
protected MouseListener createMouseListener()
createFocusListener
protected FocusListener createFocusListener()
createChangeListener
protected ChangeListener createChangeListener()
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener()
installKeyboardActions
protected void installKeyboardActions()
uninstallKeyboardActions
protected void uninstallKeyboardActions()
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
getMinimumSize
public Dimension getMinimumSize(JComponent c)
- Description copied from class:
ComponentUI
- Returns the specified component's minimum size appropriate for
the look and feel. If
null is returned, the minimum
size will be calculated by the component's layout manager instead
(this is the preferred approach for any component with a specific
layout manager installed). The default implementation of this
method invokes getPreferredSize and returns that value.
- Overrides:
getMinimumSize in class ComponentUI
- Parameters:
c - the component whose minimum size is being queried;
this argument is often ignored,
but might be used if the UI object is stateless
and shared by multiple components
- Returns:
- a
Dimension object or null - See Also:
JComponent.getMinimumSize(),
LayoutManager.minimumLayoutSize(java.awt.Container),
ComponentUI.getPreferredSize(javax.swing.JComponent)
getMaximumSize
public Dimension getMaximumSize(JComponent c)
- Description copied from class:
ComponentUI
- Returns the specified component's maximum size appropriate for
the look and feel. If
null is returned, the maximum
size will be calculated by the component's layout manager instead
(this is the preferred approach for any component with a specific
layout manager installed). The default implementation of this
method invokes getPreferredSize and returns that value.
- Overrides:
getMaximumSize in class ComponentUI
- Parameters:
c - the component whose maximum size is being queried;
this argument is often ignored,
but might be used if the UI object is stateless
and shared by multiple components
- Returns:
- a
Dimension object or null - See Also:
JComponent.getMaximumSize(),
LayoutManager2.maximumLayoutSize(java.awt.Container)
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 forwidth - the width to get the baseline forheight - 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
paint
public void paint(Graphics g,
JComponent c)
- Description copied from class:
ComponentUI
- Paints the specified component appropriate for the look and feel.
This method is invoked from the
ComponentUI.update method when
the specified component is being painted. Subclasses should override
this method and use the specified Graphics object to
render the content of the component.
- Overrides:
paint in class ComponentUI
- Parameters:
g - the Graphics context in which to paintc - the component being painted;
this argument is often ignored,
but might be used if the UI object is stateless
and shared by multiple components- See Also:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
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 renderingtabPlacement - the placement for the tabs within the JTabbedPaneselectedIndex - 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)
layoutLabel
protected void layoutLabel(int tabPlacement,
FontMetrics metrics,
int tabIndex,
String title,
Icon icon,
Rectangle tabRect,
Rectangle iconRect,
Rectangle textRect,
boolean isSelected)
paintIcon
protected void paintIcon(Graphics g,
int tabPlacement,
int tabIndex,
Icon icon,
Rectangle iconRect,
boolean isSelected)
paintText
protected void paintText(Graphics g,
int tabPlacement,
Font font,
FontMetrics metrics,
int tabIndex,
String title,
Rectangle textRect,
boolean isSelected)
getTabLabelShiftX
protected int getTabLabelShiftX(int tabPlacement,
int tabIndex,
boolean isSelected)
getTabLabelShiftY
protected int getTabLabelShiftY(int tabPlacemen |