Class FlatTabbedPaneUI.FlatTabbedPaneScrollLayout
- All Implemented Interfaces:
LayoutManager
- Enclosing class:
FlatTabbedPaneUI
Component hierarchy for scroll tab layout policy:
JTabbedPane
+- 1...n tab content components
+- BasicTabbedPaneUI.ScrollableTabViewport (extends JViewport)
| +- BasicTabbedPaneUI.ScrollableTabPanel (extends JPanel)
| +- (optional) BasicTabbedPaneUI.TabContainer (extends JPanel)
| +- 1..n tab components (shown in tab area)
+- FlatScrollableTabButton (scroll forward)
+- FlatScrollableTabButton (scroll backward)
+- FlatMoreTabsButton
+- (optional) ContainerUIResource (extends JPanel)
| +- leading component
+- (optional) ContainerUIResource (extends JPanel)
+- trailing component
Instead of using super.layoutContainer(Container) and fixing some
component bounds, this class implements layoutContainer(Container)
and moves/resizes components only once.
This avoids that some components are moved/resized twice, which would unnecessary
repaint and relayout tabbed pane. In some special case this resulted in
"endless" layouting and repainting when using nested tabbed panes (top and
bottom tab placement) and RSyntaxTextArea (with enabled line-wrapping) as tab content.
Although this class delegates nearly all methods to the original layout manager
BasicTabbedPaneUI.TabbedPaneScrollLayout, which extends
BasicTabbedPaneUI.TabbedPaneLayout, it is necessary that this class
also extends BasicTabbedPaneUI.TabbedPaneLayout to avoid a ClassCastException
in BasicTabbedPaneUI.ensureCurrentLayout().
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected -
Method Summary
Modifier and TypeMethodDescriptionvoidaddLayoutComponent(String name, Component comp) voidprotected DimensionCalculate preferred size of the tab area.protected voidlayoutChildComponent(Component c, Rectangle contentAreaBounds) protected voidminimumLayoutSize(Container parent) preferredLayoutSize(Container parent) voidMethods inherited from class FlatTabbedPaneUI.FlatTabbedPaneLayout
calculateSize, getContentAreaLayoutBounds, getTabAreaLayoutBounds, isContentEmpty, isTabContainer, layoutChildComponents, layoutContainer, layoutLeftAndRightComponents, layoutTabComponents, layoutTopAndBottomComponentsMethods inherited from class BasicTabbedPaneUI.TabbedPaneLayout
calculateTabRects, normalizeTabRuns, padSelectedTab, padTabRun, preferredTabAreaHeight, preferredTabAreaWidth, rotateTabRunsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface LayoutManager
layoutContainer
-
Field Details
-
delegate
-
-
Constructor Details
-
FlatTabbedPaneScrollLayout
-
-
Method Details
-
calculateLayoutInfo
public void calculateLayoutInfo()- Overrides:
calculateLayoutInfoin classBasicTabbedPaneUI.TabbedPaneLayout
-
calculateTabAreaSize
Description copied from class:FlatTabbedPaneUI.FlatTabbedPaneLayoutCalculate preferred size of the tab area. Used only ifFlatTabbedPaneUI.FlatTabbedPaneLayout.isContentEmpty()returnstrue.- Overrides:
calculateTabAreaSizein classFlatTabbedPaneUI.FlatTabbedPaneLayout
-
preferredLayoutSize
- Specified by:
preferredLayoutSizein interfaceLayoutManager- Overrides:
preferredLayoutSizein classBasicTabbedPaneUI.TabbedPaneLayout
-
minimumLayoutSize
- Specified by:
minimumLayoutSizein interfaceLayoutManager- Overrides:
minimumLayoutSizein classBasicTabbedPaneUI.TabbedPaneLayout
-
addLayoutComponent
- Specified by:
addLayoutComponentin interfaceLayoutManager- Overrides:
addLayoutComponentin classBasicTabbedPaneUI.TabbedPaneLayout
-
removeLayoutComponent
- Specified by:
removeLayoutComponentin interfaceLayoutManager- Overrides:
removeLayoutComponentin classBasicTabbedPaneUI.TabbedPaneLayout
-
layoutContainerImpl
protected void layoutContainerImpl()- Overrides:
layoutContainerImplin classFlatTabbedPaneUI.FlatTabbedPaneLayout- Since:
- 3.3
-
layoutChildComponent
- Overrides:
layoutChildComponentin classFlatTabbedPaneUI.FlatTabbedPaneLayout- Since:
- 3.3
-