javax.swing.plaf.metal

Class MetalTabbedPaneUI

public class MetalTabbedPaneUI extends BasicTabbedPaneUI

A UI delegate for the {@link JTabbedPane} component.
Nested Class Summary
classMetalTabbedPaneUI.TabbedPaneLayout
A {@link LayoutManager} responsible for placing all the tabs and the visible component inside the {@link JTabbedPane}.
Field Summary
protected intminTabWidth
The minimum tab width.
protected ColorselectColor
The color for the selected tab.
protected ColorselectHighlight
The color for a highlighted selected tab.
protected ColortabAreaBackground
The background color used for the tab area.
Constructor Summary
MetalTabbedPaneUI()
Constructs a new instance of MetalTabbedPaneUI.
Method Summary
protected intcalculateMaxTabHeight(int tabPlacement)
protected LayoutManagercreateLayoutManager()
Creates and returns an instance of {@link TabbedPaneLayout}.
static ComponentUIcreateUI(JComponent component)
Returns an instance of MetalTabbedPaneUI.
protected ColorgetColorForGap(int currentRun, int x, int y)
Returns the color for the gap.
protected intgetTabLabelShiftX(int tabPlacement, int index, boolean isSelected)
protected intgetTabLabelShiftY(int tabPlacement, int index, boolean isSelected)
protected intgetTabRunOverlay(int tabPlacement)
Returns the amount of overlay among the tabs.
protected voidinstallDefaults()
Installs the defaults for this UI.
protected voidpaintBottomTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the bottom ({@link #BOTTOM}).
protected voidpaintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the lower edge of the content border.
protected voidpaintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the left edge of the content border.
protected voidpaintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the right edge of the content border.
protected voidpaintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the upper edge of the content border.
protected voidpaintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
This method paints the focus rectangle around the selected tab.
protected voidpaintHighlightBelowTab()
Paints the highlight below the tab, if there is one.
protected voidpaintLeftTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the left ({@link #LEFT}).
protected voidpaintRightTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the right ({@link #RIGHT}).
protected voidpaintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
Paints the background for a tab.
protected voidpaintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
Paints the border for a single tab.
protected voidpaintTopTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the top ({@link #TOP}).
protected booleanshouldFillGap(int currentRun, int tabIndex, int x, int y)
Returns true if the gap should be filled in.
protected booleanshouldPadTabRun(int tabPlacement, int run)
Returns true if the tabs in the specified run should be padded to make the run fill the width/height of the {@link JTabbedPane}.
protected booleanshouldRotateTabRuns(int tabPlacement, int selectedRun)
Returns true if we should rotate the tab runs.

Field Detail

minTabWidth

protected int minTabWidth
The minimum tab width.

selectColor

protected Color selectColor
The color for the selected tab.

selectHighlight

protected Color selectHighlight
The color for a highlighted selected tab.

tabAreaBackground

protected Color tabAreaBackground
The background color used for the tab area.

Constructor Detail

MetalTabbedPaneUI

public MetalTabbedPaneUI()
Constructs a new instance of MetalTabbedPaneUI.

Method Detail

calculateMaxTabHeight

protected int calculateMaxTabHeight(int tabPlacement)

createLayoutManager

protected LayoutManager createLayoutManager()
Creates and returns an instance of {@link TabbedPaneLayout}.

Returns: A layout manager used by this UI delegate.

createUI

public static ComponentUI createUI(JComponent component)
Returns an instance of MetalTabbedPaneUI.

Parameters: component the component for which we return an UI instance

Returns: an instance of MetalTabbedPaneUI

getColorForGap

protected Color getColorForGap(int currentRun, int x, int y)
Returns the color for the gap.

Parameters: currentRun - The current run to return the color for x - The x position of the current run y - The y position of the current run

Returns: the color for the gap in the current run.

getTabLabelShiftX

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

getTabLabelShiftY

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

getTabRunOverlay

protected int getTabRunOverlay(int tabPlacement)
Returns the amount of overlay among the tabs. In the Metal L&F the overlay for LEFT and RIGHT placement is half of the maxTabHeight. For TOP and BOTTOM placement the tabs do not overlay.

Parameters: tabPlacement the placement

Returns: the amount of overlay among the tabs

installDefaults

protected void installDefaults()
Installs the defaults for this UI. This method calls super.installDefaults and then loads the Metal specific defaults for TabbedPane.

paintBottomTabBorder

protected void paintBottomTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the bottom ({@link #BOTTOM}).

Parameters: tabIndex the tab index. g the graphics device. x the x-coordinate for the tab's bounding rectangle. y the y-coordinate for the tab's bounding rectangle. w the width for the tab's bounding rectangle. h the height for the tab's bounding rectangle. btm ??? rght ??? isSelected indicates whether the tab is selected.

paintContentBorderBottomEdge

protected void paintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the lower edge of the content border.

Parameters: g the graphics to use for painting tabPlacement the tab placement selectedIndex the index of the selected tab x the upper left coordinate of the content area y the upper left coordinate of the content area w the width of the content area h the height of the content area

paintContentBorderLeftEdge

protected void paintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the left edge of the content border.

Parameters: g the graphics to use for painting tabPlacement the tab placement selectedIndex the index of the selected tab x the upper left coordinate of the content area y the upper left coordinate of the content area w the width of the content area h the height of the content area

paintContentBorderRightEdge

protected void paintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the right edge of the content border.

Parameters: g the graphics to use for painting tabPlacement the tab placement selectedIndex the index of the selected tab x the upper left coordinate of the content area y the upper left coordinate of the content area w the width of the content area h the height of the content area

paintContentBorderTopEdge

protected void paintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
Paints the upper edge of the content border.

Parameters: g the graphics to use for painting tabPlacement the tab placement selectedIndex the index of the selected tab x the upper left coordinate of the content area y the upper left coordinate of the content area w the width of the content area h the height of the content area

paintFocusIndicator

protected void paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
This method paints the focus rectangle around the selected tab.

Parameters: g The Graphics object to paint with. tabPlacement The JTabbedPane's tab placement. rects The array of rectangles keeping track of size and position. tabIndex The tab index. iconRect The icon bounds. textRect The text bounds. isSelected Whether this tab is selected.

paintHighlightBelowTab

protected void paintHighlightBelowTab()
Paints the highlight below the tab, if there is one.

paintLeftTabBorder

protected void paintLeftTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the left ({@link #LEFT}).

Parameters: tabIndex the tab index. g the graphics device. x the x-coordinate for the tab's bounding rectangle. y the y-coordinate for the tab's bounding rectangle. w the width for the tab's bounding rectangle. h the height for the tab's bounding rectangle. btm ??? rght ??? isSelected indicates whether the tab is selected.

paintRightTabBorder

protected void paintRightTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the right ({@link #RIGHT}).

Parameters: tabIndex the tab index. g the graphics device. x the x-coordinate for the tab's bounding rectangle. y the y-coordinate for the tab's bounding rectangle. w the width for the tab's bounding rectangle. h the height for the tab's bounding rectangle. btm ??? rght ??? isSelected indicates whether 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 background for a tab.

Parameters: g the graphics device. tabPlacement the tab placement ({@link #TOP}, {@link #LEFT}, {@link #BOTTOM} or {@link #RIGHT}). tabIndex the index of the tab to draw the border for. x the x-coordinate for the tab's bounding rectangle. y the y-coordinate for the tab's bounding rectangle. w the width for the tab's bounding rectangle. h the height for the tab's bounding rectangle. isSelected indicates whether or not the tab is selected.

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.

Parameters: g the graphics device. tabPlacement the tab placement ({@link #TOP}, {@link #LEFT}, {@link #BOTTOM} or {@link #RIGHT}). tabIndex the index of the tab to draw the border for. x the x-coordinate for the tab's bounding rectangle. y the y-coordinate for the tab's bounding rectangle. w the width for the tab's bounding rectangle. h the height for the tab's bounding rectangle. isSelected indicates whether or not the tab is selected.

paintTopTabBorder

protected void paintTopTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
Paints the border for a tab assuming that the tab position is at the top ({@link #TOP}).

Parameters: tabIndex the tab index. g the graphics device. x the x-coordinate for the tab's bounding rectangle. y the y-coordinate for the tab's bounding rectangle. w the width for the tab's bounding rectangle. h the height for the tab's bounding rectangle. btm the y coordinate of the bottom border rght the x coordinate of the right border isSelected indicates whether the tab is selected.

shouldFillGap

protected boolean shouldFillGap(int currentRun, int tabIndex, int x, int y)
Returns true if the gap should be filled in.

Parameters: currentRun - The current run tabIndex - The current tab x - The x position of the tab y - The y position of the tab

Returns: true if the gap at the current run should be filled

shouldPadTabRun

protected boolean shouldPadTabRun(int tabPlacement, int run)
Returns true if the tabs in the specified run should be padded to make the run fill the width/height of the {@link JTabbedPane}.

Parameters: tabPlacement the tab placement for the {@link JTabbedPane} (one of {@link #TOP}, {@link #BOTTOM}, {@link #LEFT} and {@link #RIGHT}). run the run index.

Returns: A boolean.

shouldRotateTabRuns

protected boolean shouldRotateTabRuns(int tabPlacement, int selectedRun)
Returns true if we should rotate the tab runs.

Parameters: tabPlacement - The current tab placement. selectedRun - The selected run.

Returns: true if the tab runs should be rotated.