Interface FlatClientProperties
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Specifies type of button.static final String
Paint the button without a border in the unfocused state.static final String
Paint a help button (circle with question mark).static final String
Paint the button with round edges.static final String
Paint the button with square edges.static final String
Paint the toggle button in tab style.static final String
Paint the button in toolbar style.static final String
Specifies a callback that is invoked to check whether a component is permanent focus owner.static final String
Paint the component with round edges.static final String
Specifies whether a component shown in a window title bar area should behave as caption (left-click allows moving window, right-click shows window system menu).static final String
Specifies whether the content pane (and the glass pane) should be extended into the window title bar area (requires enabled window decorations).static final String
Contains the current bounds of the iconfify/maximize/close buttons (in root pane coordinates) if fullWindowContent mode is enabled.static final String
Marks the panel as placeholder for the iconfify/maximize/close buttons in fullWindowContent mode.static final String
Specifies whether the glass pane should have full height and overlap the title bar, if FlatLaf window decorations are enabled.static final String
Specifies the spacing around the macOS window close/minimize/zoom buttons.static final String
Add large spacing around the macOS window close/minimize/zoom buttons.static final String
Add medium spacing around the macOS window close/minimize/zoom buttons.static final String
Specifies whether the menu bar is embedded into the window title pane if window decorations are enabled.static final String
Specifies minimum height of a component.static final String
Specifies minimum width of a component.static final String
Specifies the outline color of the component border.static final String
Paint the component border in another color (usually reddish) to indicate an error.static final String
Paint the component border in another color (usually yellowish) to indicate a warning.static final String
Placeholder text that is only painted if the text field is empty.static final String
Specifies the popup border corner radius if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.static final String
Specifies whether a drop shadow is painted if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.static final String
Specifies whether a heavy weight window should be used if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.static final String
Specifies the popup rounded border width if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.static final String
Specifies whether the progress bar has always the larger height even if no string is painted.static final String
Specifies whether the progress bar is paint with square edges.static final String
Specifies whether the decrease/increase arrow buttons of a scrollbar are shown.static final String
Specifies whether the scroll pane uses smooth scrolling.static final String
Specifies whether all text is selected when the text component gains focus.static final String
Always select all text when the text component gains focus.static final String
Never select all text when the text component gains focus.static final String
Select all text when the text component gains focus for the first time and selection was not modified (is at end of text).static final String
Specifies selected state of a checkbox.static final String
Paint an indeterminate state on a checkbox.static final String
Specifies what side of the spilt pane is allowed to expand via one-touch expanding arrow buttons.static final String
Allow expanding only left/top side of the split pane.static final String
Allow expanding only right/bottom side of the split pane.static final String
Specifies whether the button preferred size will be made square (quadratically).static final String
Specifies the style of a component as String in CSS syntax ("key1: value1; key2: value2; ...") or asMap
<String, Object> with binary values.static final String
Specifies the style class(es) of a component as String (single class or multiple classes separated by space characters) or asString[]
orList
<String> (multiple classes).static final String
Background color if selected and toggle button type isBUTTON_TYPE_TAB
.static final String
Color of underline if toggle button type isBUTTON_TYPE_TAB
.static final String
Thickness of underline if toggle button type isBUTTON_TYPE_TAB
.static final String
Placement of underline if toggle button type isBUTTON_TYPE_TAB
static final String
Align to center.static final String
Stretch to fill all available space.static final String
Align to the leading edge.static final String
Align to the trailing edge.static final String
Specifies whether a full border is painted around a tabbed pane.static final String
Specifies whether the tab area should be hidden if it contains only one tab.static final String
Specifies a component that will be placed at the leading edge of the tabs area.static final String
Specifies the maximum width of a tab.static final String
Specifies the minimum width of a tab.static final String
The forward/backward scroll arrow buttons are placed on both sides of the tab area.static final String
The forward/backward scroll arrow buttons are placed on the trailing side of the tab area.static final String
Display only when needed.static final String
Display single button only when needed.static final String
Display never.static final String
Specifies the placement of the forward/backward scroll arrow buttons.static final String
Specifies the display policy for the forward/backward scroll arrow buttons.static final String
Specifies whether the separator between tabs area and content area should be shown.static final String
Specifies whether separators are shown between tabs.static final String
Specifies the horizontal alignment of the tab title and icon.static final String
Specifies the alignment of the tab area.static final String
Specifies the insets of the tab area.static final String
Specifies whether tabs are closable.static final String
Specifies the callback that is invoked when a tab close button is clicked.static final String
Specifies the tooltip text used for tab close buttons.static final String
Specifies the minimum height of a tab.static final String
Specifies the tab icon placement (relative to tab title).static final String
Specifies the insets of a tab.static final String
Specifies the rotation of the tabs (title, icon, etc.).static final String
Tabs are rotated depending on tab placement.static final String
Tabs are rotated counter-clockwise.static final String
Tabs are not rotated.static final String
Tabs are rotated clockwise.static final String
Specifies type of the selected tab.static final String
Paint the selected tab as card.static final String
Paint the selected tab underlined.static final String
Specifies how the tabs should be sized.static final String
Unselected tabs are smaller because they show only the tab icon, but no tab title.static final String
All tabs in a tabbed pane has same width.static final String
Tab width is adjusted to tab icon and title.static final String
Specifies the display policy for the "more tabs" button, which shows a popup menu with the (partly) hidden tabs.static final String
Specifies a component that will be placed at the trailing edge of the tabs area.static final String
Specifies the callback that is invoked when a "clear" (or "cancel") button is clicked.static final String
Specifies a component that will be placed at the leading edge of the text field.static final String
Specifies an icon that will be placed at the leading edge of the text field.static final String
Specifies the padding of the text.static final String
Specifies whether a "clear" (or "cancel") button is shown on the trailing side if the text field is not empty, editable and enabled.static final String
Specifies a component that will be placed at the trailing edge of the text field.static final String
Specifies an icon that will be placed at the trailing edge of the text field.static final String
Background color of window title bar (requires enabled window decorations).static final String
Foreground color of window title bar (requires enabled window decorations).static final String
Specifies whether the "close" button should be shown in the window title bar (requires enabled window decorations).static final String
Specifies whether the window icon should be shown in the window title bar (requires enabled window decorations).static final String
Specifies whether the "iconify" button should be shown in the window title bar (requires enabled window decorations).static final String
Specifies whether the "maximize/restore" button should be shown in the window title bar (requires enabled window decorations).static final String
Specifies whether the window title should be shown in the window title bar (requires enabled window decorations).static final String
Specifies whether tree item selection is painted.static final String
Override if a tree shows a wide selection.static final String
Specifies whether FlatLaf native window decorations should be used forJFrame
orJDialog
.static final String
Specifies the style of the window title bar.static final String
The window has Utility-style title bar, which is smaller than default title bar. -
Method Summary
Static MethodsModifier and TypeMethodDescriptionstatic <T> T
clientProperty
(JComponent c, String key, T defaultValue, Class<T> type) Returns the value of the specified client property if it is an instance of the specified type.static boolean
clientPropertyBoolean
(JComponent c, String key, boolean defaultValue) Checks whether a client property of a component is a boolean and returns its value.static Boolean
clientPropertyBooleanStrict
(JComponent c, String key, Boolean defaultValue) Checks whether a client property of a component is aBoolean
and returns its value.static Color
clientPropertyColor
(JComponent c, String key, Color defaultValue) Checks whether a client property of a component is a color and returns its value.static boolean
clientPropertyEquals
(JComponent c, String key, Object value) Checks whether a client property of a component has the given value.static int
clientPropertyInt
(JComponent c, String key, int defaultValue) Checks whether a client property of a component is an integer and returns its value.
-
Field Details
-
BUTTON_TYPE
Specifies type of button.Components
JButton
andJToggleButton
Value typeString
Allowed ValuesBUTTON_TYPE_SQUARE
,BUTTON_TYPE_ROUND_RECT
,BUTTON_TYPE_TAB
,BUTTON_TYPE_HELP
,BUTTON_TYPE_TOOLBAR_BUTTON
orBUTTON_TYPE_BORDERLESS
- See Also:
-
BUTTON_TYPE_SQUARE
Paint the button with square edges.Components
JButton
andJToggleButton
- See Also:
-
BUTTON_TYPE_ROUND_RECT
Paint the button with round edges.Components
JButton
andJToggleButton
- See Also:
-
BUTTON_TYPE_TAB
Paint the toggle button in tab style.Components
JToggleButton
- See Also:
-
BUTTON_TYPE_HELP
Paint a help button (circle with question mark).Components
JButton
- See Also:
-
BUTTON_TYPE_TOOLBAR_BUTTON
Paint the button in toolbar style.Components
JButton
andJToggleButton
- See Also:
-
BUTTON_TYPE_BORDERLESS
Paint the button without a border in the unfocused state.Components
JButton
andJToggleButton
- Since:
- 1.2
- See Also:
-
SQUARE_SIZE
Specifies whether the button preferred size will be made square (quadratically).Components
JButton
andJToggleButton
Value typeBoolean
- See Also:
-
SELECTED_STATE
Specifies selected state of a checkbox.Component
JCheckBox
Value typeString
Allowed ValuesSELECTED_STATE_INDETERMINATE
- See Also:
-
SELECTED_STATE_INDETERMINATE
Paint an indeterminate state on a checkbox.- See Also:
-
STYLE
Specifies the style of a component as String in CSS syntax ("key1: value1; key2: value2; ...") or asMap
<String, Object> with binary values.The keys are the same as used in UI defaults, but without component type prefix. E.g. for UI default
Slider.thumbSize
use keythumbSize
.The syntax of the CSS values is the same as used in FlatLaf properties files (https://www.formdev.com/flatlaf/properties-files/), but some features are not supported (e.g. variables). When using a map, the values are not parsed from a string. They must be binary.
Components
JComponent
Value typeString
orMap
<String, Object>- Since:
- 2
- See Also:
-
STYLE_CLASS
Specifies the style class(es) of a component as String (single class or multiple classes separated by space characters) or asString[]
orList
<String> (multiple classes).The style rules must be defined in UI defaults either as strings (in CSS syntax) or as
Map
<String, Object> (with binary values). The key must be in syntax:[style]type.styleClass
, where the type is optional. E.g. in FlatLaf properties file:
or in Java code:[style]Button.primary = borderColor: #08f; background: #08f; foreground: #fff [style].secondary = borderColor: #0f8; background: #0f8
The rule "Button.primary" can be applied to buttons only. The rule ".secondary" can be applied to any component.UIManager.put( "[style]Button.primary", "borderColor: #08f; background: #08f; foreground: #fff" ); UIManager.put( "[style].secondary", "borderColor: #0f8; background: #0f8" );
To have similar behavior as in CSS, first the rule without type is applied, then the rule with type. E.g. setting style class to "foo" on a
JButton
uses rules from UI default keys "[style].foo" and "[style]Button.foo".Components
JComponent
Value typeString
,String[]
orList
<String>- Since:
- 2
- See Also:
-
MINIMUM_WIDTH
Specifies minimum width of a component.Component
JButton
,JToggleButton
,JComboBox
,JSpinner
andJTextComponent
Value typeInteger
- See Also:
-
MINIMUM_HEIGHT
Specifies minimum height of a component.Component
JButton
andJToggleButton
Value typeInteger
- See Also:
-
COMPONENT_ROUND_RECT
Paint the component with round edges.Components
JComboBox
,JSpinner
,JTextField
,JFormattedTextField
andJPasswordField
Value typeBoolean
- See Also:
-
OUTLINE
Specifies the outline color of the component border.Components
JButton
,JComboBox
,JFormattedTextField
,JPasswordField
,JScrollPane
,JSpinner
,JTextField
andJToggleButton
Value typeString
orColor
orColor
[2]
Allowed ValuesOUTLINE_ERROR
,OUTLINE_WARNING
, any color (typeColor
) or an array of two colors (typeColor
[2]) where the first color is for focused state and the second for unfocused state- See Also:
-
OUTLINE_ERROR
Paint the component border in another color (usually reddish) to indicate an error.- See Also:
-
OUTLINE_WARNING
Paint the component border in another color (usually yellowish) to indicate a warning.- See Also:
-
COMPONENT_FOCUS_OWNER
Specifies a callback that is invoked to check whether a component is permanent focus owner. Used to paint focus indicators.May be useful in special cases for custom components.
Use a
Predicate
that receives the component as parameter:myComponent.putClientProperty( "JComponent.focusOwner", (Predicate<JComponent>) c -> { return ...; // check here } );
Component
JComponent
Value typePredicate
<javax.swing.JComponent>- See Also:
-
COMPONENT_TITLE_BAR_CAPTION
Specifies whether a component shown in a window title bar area should behave as caption (left-click allows moving window, right-click shows window system menu). The caption component does not receive mouse pressed/released/clicked/dragged events, but it gets mouse entered/exited/moved events.Since 3.4, this client property also supports using a function that can check whether a given location in the component should behave as caption. Useful for components that do not use mouse input on whole component bounds.
Warning:myComponent.putClientProperty( "JComponent.titleBarCaption", (Function<Point, Boolean>) pt -> { // parameter pt contains mouse location (in myComponent coordinates) // return true if the component is not interested in mouse input at the given location // return false if the component wants process mouse input at the given location // return null if the component children should be checked return ...; // check here } );
- This function is invoked often when mouse is moved over window title bar area and should therefore return quickly.
- This function 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.
Component
JComponent
Value typeBoolean
orFunction
<Point, Boolean>- Since:
- 2.5
- See Also:
-
FULL_WINDOW_CONTENT_BUTTONS_PLACEHOLDER
Marks the panel as placeholder for the iconfify/maximize/close buttons in fullWindowContent mode. SeeFULL_WINDOW_CONTENT
.If fullWindowContent mode is enabled, the preferred size of the panel is equal to the size of the iconfify/maximize/close buttons. Otherwise is is
0,0
.You're responsible to layout that panel at the top-left or top-right corner, depending on platform, where the iconfify/maximize/close buttons are located.
Syntax of the value string is:
"win|mac [horizontal|vertical] [zeroInFullScreen] [leftToRight|rightToLeft]"
.The string must start with
"win"
(for Windows or Linux) or with"mac"
(for macOS) and specifies the platform where the placeholder should be used. On macOS, you need the placeholder in the top-left corner, but on Windows/Linux you need it in the top-right corner. So if your application supports fullWindowContent mode on both platforms, you can add two placeholders to your layout and FlatLaf automatically uses only one of them. The other gets size0,0
.Optionally, you can append following options to the value string (separated by space characters):
"horizontal"
- preferred height is zero"vertical"
- preferred width is zero"zeroInFullScreen"
- in full-screen mode on macOS, preferred size is0,0
"leftToRight"
- in right-to-left component orientation, preferred size is0,0
"rightToLeft"
- in left-to-right component orientation, preferred size is0,0
Or add placeholder as first item to the tool bar:JPanel placeholder = new JPanel(); placeholder.putClientProperty( FlatClientProperties.FULL_WINDOW_CONTENT_BUTTONS_PLACEHOLDER, "mac" ); JToolBar toolBar = new JToolBar(); // add tool bar items JPanel toolBarPanel = new JPanel( new BorderLayout() ); toolBarPanel.add( placeholder, BorderLayout.WEST ); toolBarPanel.add( toolBar, BorderLayout.CENTER ); frame.getContentPane().add( toolBarPanel, BorderLayout.NORTH );
If a tabbed pane is located at the top, you can add the placeholder as leading component to that tabbed pane:JPanel placeholder = new JPanel(); placeholder.putClientProperty( FlatClientProperties.FULL_WINDOW_CONTENT_BUTTONS_PLACEHOLDER, "mac" ); JToolBar toolBar = new JToolBar(); toolBar.add( placeholder ); // add tool bar items frame.getContentPane().add( toolBar, BorderLayout.NORTH );
JPanel placeholder = new JPanel(); placeholder.putClientProperty( FlatClientProperties.FULL_WINDOW_CONTENT_BUTTONS_PLACEHOLDER, "mac" ); tabbedPane.putClientProperty( FlatClientProperties.TABBED_PANE_LEADING_COMPONENT, placeholder );
- Since:
- 3.4
- See Also:
-
POPUP_BORDER_CORNER_RADIUS
Specifies the popup border corner radius if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.Note that this is not available on all platforms since it requires special support. Supported platforms:
- Windows 11: Only two corner radiuses are supported
by the OS:
DWMWCP_ROUND
is 8px andDWMWCP_ROUNDSMALL
is 4px. If this value is1 - 4
, thenDWMWCP_ROUNDSMALL
is used. If it is>= 5
, thenDWMWCP_ROUND
is used. - macOS (10.14 and later): Any corner radius is supported.
JComponent
Value typeInteger
- Since:
- 3.1
- See Also:
- Windows 11: Only two corner radiuses are supported
by the OS:
-
POPUP_ROUNDED_BORDER_WIDTH
Specifies the popup rounded border width if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.Only used if popup uses rounded border.
Note that this is not available on all platforms since it requires special support. Supported platforms:
- macOS (10.14 and later)
JComponent
Value typeInteger
orFloat
- Since:
- 3.3
- See Also:
-
POPUP_DROP_SHADOW_PAINTED
Specifies whether a drop shadow is painted if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.Component
JComponent
Value typeBoolean
- See Also:
-
POPUP_FORCE_HEAVY_WEIGHT
Specifies whether a heavy weight window should be used if the component is shown in a popup or if the component is the owner of another component that is shown in a popup.Component
JComponent
Value typeBoolean
- See Also:
-
PROGRESS_BAR_LARGE_HEIGHT
Specifies whether the progress bar has always the larger height even if no string is painted.Component
JProgressBar
Value typeBoolean
- See Also:
-
PROGRESS_BAR_SQUARE
Specifies whether the progress bar is paint with square edges.Component
JProgressBar
Value typeBoolean
- See Also:
-
USE_WINDOW_DECORATIONS
Specifies whether FlatLaf native window decorations should be used forJFrame
orJDialog
.Setting this enables/disables using FlatLaf native window decorations for the window that contains the root pane.
This client property has lower priority than system property
FlatSystemProperties.USE_WINDOW_DECORATIONS
, but higher priority than UI defaultTitlePane.useWindowDecorations
.(requires Window 10)
- Since:
- 1.1.1
- See Also:
-
MENU_BAR_EMBEDDED
Specifies whether the menu bar is embedded into the window title pane if window decorations are enabled.Setting this enables/disables embedding for the window that contains the root pane.
This client property has lower priority than system property
FlatSystemProperties.MENUBAR_EMBEDDED
, but higher priority than UI defaultTitlePane.menuBarEmbedded
.(requires Window 10)
- See Also:
-
FULL_WINDOW_CONTENT
Specifies whether the content pane (and the glass pane) should be extended into the window title bar area (requires enabled window decorations). Default isfalse
.On macOS, use client property
apple.awt.fullWindowContent
(see macOS Full window content).Setting this enables/disables full window content for the
JFrame
orJDialog
that contains the root pane.If
true
, the content pane (and the glass pane) is extended into the title bar area. The window icon and title are hidden. Only the iconfify/maximize/close buttons stay visible in the upper right corner (and overlap the content pane).The user can left-click-and-drag on the title bar area to move the window, except when clicking on a component that processes mouse events (e.g. buttons or menus).
- Since:
- 3.4
- See Also:
-
FULL_WINDOW_CONTENT_BUTTONS_BOUNDS
Contains the current bounds of the iconfify/maximize/close buttons (in root pane coordinates) if fullWindowContent mode is enabled. Otherwise its value isnull
.Note: Do not set this client property. It is set by FlatLaf.
- Since:
- 3.4
- See Also:
-
TITLE_BAR_SHOW_ICON
Specifies whether the window icon should be shown in the window title bar (requires enabled window decorations). Default is UI propertyTitlePane.showIcon
.Setting this shows/hides the windows icon for the
JFrame
orJDialog
that contains the root pane.This client property has higher priority than UI default
TitlePane.showIcon
.(requires Window 10)
- Since:
- 2
- See Also:
-
TITLE_BAR_SHOW_TITLE
Specifies whether the window title should be shown in the window title bar (requires enabled window decorations). Default istrue
.Setting this shows/hides the windows title for the
JFrame
orJDialog
that contains the root pane.- Since:
- 3
- See Also:
-
TITLE_BAR_SHOW_ICONIFFY
Specifies whether the "iconify" button should be shown in the window title bar (requires enabled window decorations). Default istrue
.Setting this shows/hides the "iconify" button for the
JFrame
that contains the root pane.- Since:
- 3
- See Also:
-
TITLE_BAR_SHOW_MAXIMIZE
Specifies whether the "maximize/restore" button should be shown in the window title bar (requires enabled window decorations). Default istrue
.Setting this shows/hides the "maximize/restore" button for the
JFrame
that contains the root pane.- Since:
- 3
- See Also:
-
TITLE_BAR_SHOW_CLOSE
Specifies whether the "close" button should be shown in the window title bar (requires enabled window decorations). Default istrue
.Setting this shows/hides the "close" button for the
JFrame
orJDialog
that contains the root pane.- Since:
- 3
- See Also:
-
TITLE_BAR_BACKGROUND
Background color of window title bar (requires enabled window decorations).(requires Window 10)
- Since:
- 1.1.2
- See Also:
-
TITLE_BAR_FOREGROUND
Foreground color of window title bar (requires enabled window decorations).(requires Window 10)
- Since:
- 1.1.2
- See Also:
-
GLASS_PANE_FULL_HEIGHT
Specifies whether the glass pane should have full height and overlap the title bar, if FlatLaf window decorations are enabled. Default isfalse
.- Since:
- 3.1
- See Also:
-
WINDOW_STYLE
Specifies the style of the window title bar. Besides the default title bar style, you can use a Utility-style title bar, which is smaller than the default title bar.On Windows 10/11, this requires FlatLaf window decorations. On macOS, Java supports this out of the box.
Note that this client property must be set before the window becomes displayable. Otherwise, an
IllegalComponentStateException
is thrown.Component
JRootPane
Value typeString
Allowed ValuesWINDOW_STYLE_SMALL
- Since:
- 3.2
- See Also:
-
WINDOW_STYLE_SMALL
The window has Utility-style title bar, which is smaller than default title bar.This is the same as using
Window.setType(java.awt.Window.Type)
(Window.Type.UTILITY
).- Since:
- 3.2
- See Also:
-
SCROLL_BAR_SHOW_BUTTONS
Specifies whether the decrease/increase arrow buttons of a scrollbar are shown.Component
JScrollBar
orJScrollPane
Value typeBoolean
- See Also:
-
SCROLL_PANE_SMOOTH_SCROLLING
Specifies whether the scroll pane uses smooth scrolling.Component
JScrollPane
Value typeBoolean
- See Also:
-
SPLIT_PANE_EXPANDABLE_SIDE
Specifies what side of the spilt pane is allowed to expand via one-touch expanding arrow buttons. Requires that one-touch expanding is enabled withJSplitPane.setOneTouchExpandable(boolean)
.Component
JSplitPane
Value typeString
Allowed ValuesSPLIT_PANE_EXPANDABLE_SIDE_LEFT
orSPLIT_PANE_EXPANDABLE_SIDE_RIGHT
- Since:
- 2.2
- See Also:
-
SPLIT_PANE_EXPANDABLE_SIDE_LEFT
Allow expanding only left/top side of the split pane.- Since:
- 2.2
- See Also:
-
SPLIT_PANE_EXPANDABLE_SIDE_RIGHT
Allow expanding only right/bottom side of the split pane.- Since:
- 2.2
- See Also:
-
TABBED_PANE_TAB_TYPE
Specifies type of the selected tab.Component
JTabbedPane
Value typeString
Allowed ValuesTABBED_PANE_TAB_TYPE_UNDERLINED
orTABBED_PANE_TAB_TYPE_CARD
- Since:
- 2
- See Also:
-
TABBED_PANE_TAB_TYPE_UNDERLINED
Paint the selected tab underlined.- Since:
- 2
- See Also:
-
TABBED_PANE_TAB_TYPE_CARD
Paint the selected tab as card.- Since:
- 2
- See Also:
-
TABBED_PANE_SHOW_TAB_SEPARATORS
Specifies whether separators are shown between tabs.Component
JTabbedPane
Value typeBoolean
- See Also:
-
TABBED_PANE_SHOW_CONTENT_SEPARATOR
Specifies whether the separator between tabs area and content area should be shown.Component
JTabbedPane
Value typeBoolean
- See Also:
-
TABBED_PANE_HAS_FULL_BORDER
Specifies whether a full border is painted around a tabbed pane.Component
JTabbedPane
Value typeBoolean
- See Also:
-
TABBED_PANE_HIDE_TAB_AREA_WITH_ONE_TAB
Specifies whether the tab area should be hidden if it contains only one tab.Component
JTabbedPane
Value typeBoolean
- See Also:
-
TABBED_PANE_MINIMUM_TAB_WIDTH
Specifies the minimum width of a tab.Component
JTabbedPane
or tab content components (seeJTabbedPane.setComponentAt(int, java.awt.Component)
)
Value typeInteger
- See Also:
-
TABBED_PANE_MAXIMUM_TAB_WIDTH
Specifies the maximum width of a tab.Applied only if tab does not have a custom tab component (see
JTabbedPane.setTabComponentAt(int, java.awt.Component)
).Component
JTabbedPane
or tab content components (seeJTabbedPane.setComponentAt(int, java.awt.Component)
)
Value typeInteger
- See Also:
-
TABBED_PANE_TAB_HEIGHT
Specifies the minimum height of a tab.Component
JTabbedPane
Value typeInteger
- See Also:
-
TABBED_PANE_TAB_INSETS
Specifies the insets of a tab.Component
JTabbedPane
or tab content components (seeJTabbedPane.setComponentAt(int, java.awt.Component)
)
Value typeInsets
- See Also:
-
TABBED_PANE_TAB_AREA_INSETS
Specifies the insets of the tab area.Component
JTabbedPane
Value typeInsets
- See Also:
-
TABBED_PANE_TAB_CLOSABLE
Specifies whether tabs are closable. If set totrue
on a tabbed pane component, all tabs in that tabbed pane are closable. To make individual tabs closable, set it totrue
on a tab content component.Note that you have to specify a callback (see
TABBED_PANE_TAB_CLOSABLE
) that is invoked when the user clicks a tab close button. The callback is responsible for closing the tab.Component
JTabbedPane
or tab content components (seeJTabbedPane.setComponentAt(int, java.awt.Component)
)
Value typeBoolean
- See Also:
-
TABBED_PANE_TAB_CLOSE_TOOLTIPTEXT
Specifies the tooltip text used for tab close buttons.Component
JTabbedPane
or tab content components (seeJTabbedPane.setComponentAt(int, java.awt.Component)
)
Value typeString
- See Also:
-
TABBED_PANE_TAB_CLOSE_CALLBACK
Specifies the callback that is invoked when a tab close button is clicked. The callback is responsible for closing the tab.Either use a
IntConsumer
that receives the tab index as parameter:
Or use amyTabbedPane.putClientProperty( "JTabbedPane.tabCloseCallback", (IntConsumer) tabIndex -> { // close tab here } );
BiConsumer
<javax.swing.JTabbedPane, Integer> that receives the tabbed pane and the tab index as parameters:
If you need to check whether a modifier key (e.g. Alt or Shift) was pressed while the user clicked the tab close button, usemyTabbedPane.putClientProperty( "JTabbedPane.tabCloseCallback", (BiConsumer<JTabbedPane, Integer>) (tabbedPane, tabIndex) -> { // close tab here } );
EventQueue.getCurrentEvent()
to get current event, check whether it is aMouseEvent
and invoke its methods. E.g.AWTEvent e = EventQueue.getCurrentEvent(); boolean shift = (e instanceof MouseEvent) ? ((MouseEvent)e).isShiftDown() : false;
Component
JTabbedPane
or tab content components (seeJTabbedPane.setComponentAt(int, java.awt.Component)
)
Value typeIntConsumer
orBiConsumer
<javax.swing.JTabbedPane, Integer>- See Also:
-
TABBED_PANE_TABS_POPUP_POLICY
Specifies the display policy for the "more tabs" button, which shows a popup menu with the (partly) hidden tabs.Component
JTabbedPane
Value typeString
Allowed ValuesTABBED_PANE_POLICY_NEVER
orTABBED_PANE_POLICY_AS_NEEDED
- See Also:
-
TABBED_PANE_SCROLL_BUTTONS_POLICY
Specifies the display policy for the forward/backward scroll arrow buttons.Component
JTabbedPane
Value typeString
Allowed ValuesTABBED_PANE_POLICY_NEVER
,TABBED_PANE_POLICY_AS_NEEDED
orTABBED_PANE_POLICY_AS_NEEDED_SINGLE
- See Also:
-
TABBED_PANE_POLICY_NEVER
Display never.- See Also:
-
TABBED_PANE_POLICY_AS_NEEDED
Display only when needed.If used for
TABBED_PANE_SCROLL_BUTTONS_POLICY
, both scroll arrow buttons are either shown or hidden. Buttons are disabled if scrolling in that direction is not applicable.- See Also:
-
TABBED_PANE_POLICY_AS_NEEDED_SINGLE
Display single button only when needed.If scroll button placement is trailing, then this option is ignored and both buttons are shown or hidden as needed.
- See Also:
-
TABBED_PANE_SCROLL_BUTTONS_PLACEMENT
Specifies the placement of the forward/backward scroll arrow buttons.Component
JTabbedPane
Value typeString
Allowed ValuesTABBED_PANE_PLACEMENT_BOTH
orTABBED_PANE_PLACEMENT_TRAILING
- See Also:
-
TABBED_PANE_PLACEMENT_BOTH
The forward/backward scroll arrow buttons are placed on both sides of the tab area. The backward scroll button at the left/top side. The forward scroll button at the right/bottom side.- See Also:
-
TABBED_PANE_PLACEMENT_TRAILING
The forward/backward scroll arrow buttons are placed on the trailing side of the tab area.- See Also:
-
TABBED_PANE_TAB_AREA_ALIGNMENT
Specifies the alignment of the tab area.Component
JTabbedPane
Value typeInteger
orString
Allowed ValuesSwingConstants.LEADING
(default),SwingConstants.TRAILING
,SwingConstants.CENTER
,TABBED_PANE_ALIGN_LEADING
(default),TABBED_PANE_ALIGN_TRAILING
,TABBED_PANE_ALIGN_CENTER
orTABBED_PANE_ALIGN_FILL
- See Also:
-
TABBED_PANE_TAB_ALIGNMENT
Specifies the horizontal alignment of the tab title and icon.Component
JTabbedPane
or tab content components (seeJTabbedPane.setComponentAt(int, java.awt.Component)
)
Value typeInteger
orString
Allowed ValuesSwingConstants.LEADING
,SwingConstants.TRAILING
,SwingConstants.CENTER
(default),TABBED_PANE_ALIGN_LEADING
,TABBED_PANE_ALIGN_TRAILING
orTABBED_PANE_ALIGN_CENTER
(default)- See Also:
-
TABBED_PANE_ALIGN_LEADING
Align to the leading edge.- See Also:
-
TABBED_PANE_ALIGN_TRAILING
Align to the trailing edge.- See Also:
-
TABBED_PANE_ALIGN_CENTER
Align to center.- See Also:
-
TABBED_PANE_ALIGN_FILL
Stretch to fill all available space.- See Also:
-
TABBED_PANE_TAB_WIDTH_MODE
Specifies how the tabs should be sized.Component
JTabbedPane
Value typeString
Allowed ValuesTABBED_PANE_TAB_WIDTH_MODE_PREFERRED
(default),TABBED_PANE_TAB_WIDTH_MODE_EQUAL
orTABBED_PANE_TAB_WIDTH_MODE_COMPACT
- See Also:
-
TABBED_PANE_TAB_WIDTH_MODE_PREFERRED
Tab width is adjusted to tab icon and title.- See Also:
-
TABBED_PANE_TAB_WIDTH_MODE_EQUAL
All tabs in a tabbed pane has same width.- See Also:
-
TABBED_PANE_TAB_WIDTH_MODE_COMPACT
Unselected tabs are smaller because they show only the tab icon, but no tab title. Selected tabs show both.- See Also:
-
TABBED_PANE_TAB_ICON_PLACEMENT
Specifies the tab icon placement (relative to tab title).Component
JTabbedPane
Value typeInteger
Allowed ValuesSwingConstants.LEADING
(default),SwingConstants.TRAILING
,SwingConstants.TOP
orSwingConstants.BOTTOM
- See Also:
-
TABBED_PANE_TAB_ROTATION
Specifies the rotation of the tabs (title, icon, etc.).Component
JTabbedPane
Value typeInteger
orString
Allowed ValuesSwingConstants.LEFT
,SwingConstants.RIGHT
,TABBED_PANE_TAB_ROTATION_NONE
(default),TABBED_PANE_TAB_ROTATION_AUTO
,TABBED_PANE_TAB_ROTATION_LEFT
orTABBED_PANE_TAB_ROTATION_RIGHT
- Since:
- 3.3
- See Also:
-
TABBED_PANE_TAB_ROTATION_NONE
Tabs are not rotated.- Since:
- 3.3
- See Also:
-
TABBED_PANE_TAB_ROTATION_AUTO
Tabs are rotated depending on tab placement.For top and bottom tab placement, the tabs are not rotated.
For left tab placement, the tabs are rotated counter-clockwise.
For right tab placement, the tabs are rotated clockwise.- Since:
- 3.3
- See Also:
-
TABBED_PANE_TAB_ROTATION_LEFT
Tabs are rotated counter-clockwise.- Since:
- 3.3
- See Also:
-
TABBED_PANE_TAB_ROTATION_RIGHT
Tabs are rotated clockwise.- Since:
- 3.3
- See Also:
-
TABBED_PANE_LEADING_COMPONENT
Specifies a component that will be placed at the leading edge of the tabs area.For top and bottom tab placement, the laid out component size will be the preferred component width and the tab area height.
For left and right tab placement, the laid out component size will be the tab area width and the preferred component height.Component
JTabbedPane
Value typeComponent
- See Also:
-
TABBED_PANE_TRAILING_COMPONENT
Specifies a component that will be placed at the trailing edge of the tabs area.For top and bottom tab placement, the laid out component size will be the available horizontal space (minimum is preferred component width) and the tab area height.
For left and right tab placement, the laid out component size will be the tab area width and the available vertical space (minimum is preferred component height).Component
JTabbedPane
Value typeComponent
- See Also:
-
SELECT_ALL_ON_FOCUS_POLICY
Specifies whether all text is selected when the text component gains focus.Component
JTextField
(and subclasses)
Value typeString
Allowed ValuesSELECT_ALL_ON_FOCUS_POLICY_NEVER
,SELECT_ALL_ON_FOCUS_POLICY_ONCE
(default) orSELECT_ALL_ON_FOCUS_POLICY_ALWAYS
- See Also:
-
SELECT_ALL_ON_FOCUS_POLICY_NEVER
Never select all text when the text component gains focus.- See Also:
-
SELECT_ALL_ON_FOCUS_POLICY_ONCE
Select all text when the text component gains focus for the first time and selection was not modified (is at end of text). This is the default.- See Also:
-
SELECT_ALL_ON_FOCUS_POLICY_ALWAYS
Always select all text when the text component gains focus.- See Also:
-
PLACEHOLDER_TEXT
Placeholder text that is only painted if the text field is empty.Component
JTextField
(and subclasses) orJComboBox
Value typeString
- See Also:
-
TEXT_FIELD_PADDING
Specifies the padding of the text. This changes the location and size of the text view within the component bounds, but does not affect the size of the component.Component
JTextField
(and subclasses)
Value typeInsets
- Since:
- 1.4
- See Also:
-
TEXT_FIELD_LEADING_ICON
Specifies an icon that will be placed at the leading edge of the text field.Component
JTextField
(and subclasses)
Value typeIcon
- Since:
- 2
- See Also:
-
TEXT_FIELD_TRAILING_ICON
Specifies an icon that will be placed at the trailing edge of the text field.Component
JTextField
(and subclasses)
Value typeIcon
- Since:
- 2
- See Also:
-
TEXT_FIELD_LEADING_COMPONENT
Specifies a component that will be placed at the leading edge of the text field.The component will be positioned inside and aligned to the visible text field border. There is no gap between the visible border and the component. The laid out component size will be the preferred component width and the inner text field height.
The component should be not opaque because the text field border is painted slightly inside the usually visible border in some cases. E.g. when focused (in some themes) or when an outline color is specified (see
OUTLINE
).The component is prepared in the following way:
- Component client property
STYLE_CLASS
is set toinTextField
. - If component is a button or toggle button, client property
BUTTON_TYPE
is set toBUTTON_TYPE_TOOLBAR_BUTTON
and button cursor is set to default cursor (if not set). - If component is a toolbar, client property
STYLE_CLASS
is set toinTextField
on all toolbar children and toolbar cursor is set to default cursor (if not set).
comp.setCursor( Cursor.getDefaultCursor() )
.Styling is used to modify insets/margins and appearance of buttons and toolbars so that they fit nicely into the text field and do not increase text field height. See styles
[style]Button.inTextField
and[style]ToolBar.inTextField
inFlat[Light|Dark]Laf.properties
.Component
JTextField
(and subclasses)
Value typeJComponent
- Since:
- 2
- See Also:
- Component client property
-
TEXT_FIELD_TRAILING_COMPONENT
Specifies a component that will be placed at the trailing edge of the text field.See
TEXT_FIELD_LEADING_COMPONENT
for details.Component
JTextField
(and subclasses)
Value typeJComponent
- Since:
- 2
- See Also:
-
TEXT_FIELD_SHOW_CLEAR_BUTTON
Specifies whether a "clear" (or "cancel") button is shown on the trailing side if the text field is not empty, editable and enabled. Default isfalse
.Component
JTextField
(and subclasses)
Value typeBoolean
- Since:
- 2
- See Also:
-
TEXT_FIELD_CLEAR_CALLBACK
Specifies the callback that is invoked when a "clear" (or "cancel") button is clicked. If a callback is specified than it is responsible for clearing the text field. Without callback, the text field clears itself.Either use a
Runnable
:
Or use amyTextField.putClientProperty( "JTextField.clearCallback", (Runnable) () -> { // clear field here or cancel search } );
Consumer
<javax.swing.text.JTextComponent> that receives the text field as parameter:myTextField.putClientProperty( "JTextField.clearCallback", (Consumer<JTextComponent>) textField -> { // clear field here or cancel search } );
Component
JTextField
(and subclasses)
Value typeRunnable
orConsumer
<javax.swing.text.JTextComponent>- Since:
- 2
- See Also:
-
TAB_BUTTON_UNDERLINE_PLACEMENT
Placement of underline if toggle button type isBUTTON_TYPE_TAB
Component
JToggleButton
Value typeInteger
Allowed ValuesSwingConstants.BOTTOM
(default),SwingConstants.TOP
,SwingConstants.LEFT
orSwingConstants.RIGHT
- Since:
- 2.3
- See Also:
-
TAB_BUTTON_UNDERLINE_HEIGHT
Thickness of underline if toggle button type isBUTTON_TYPE_TAB
.Component
JToggleButton
Value typeInteger
- See Also:
-
TAB_BUTTON_UNDERLINE_COLOR
Color of underline if toggle button type isBUTTON_TYPE_TAB
.Component
JToggleButton
Value typeColor
- See Also:
-
TAB_BUTTON_SELECTED_BACKGROUND
Background color if selected and toggle button type isBUTTON_TYPE_TAB
.Component
JToggleButton
Value typeColor
- See Also:
-
TREE_WIDE_SELECTION
- See Also:
-
TREE_PAINT_SELECTION
Specifies whether tree item selection is painted. Default istrue
. If set tofalse
, then the tree cell renderer is responsible for painting selection.- See Also:
-
MACOS_WINDOW_BUTTONS_SPACING
Specifies the spacing around the macOS window close/minimize/zoom buttons. Useful if full window content is enabled.(requires macOS 10.14+ for "medium" spacing and macOS 11+ for "large" spacing, requires Java 17+)
Component
JRootPane
Value typeString
Allowed ValuesMACOS_WINDOW_BUTTONS_SPACING_MEDIUM
orMACOS_WINDOW_BUTTONS_SPACING_LARGE
(requires macOS 11+)- Since:
- 3.4
- See Also:
-
MACOS_WINDOW_BUTTONS_SPACING_MEDIUM
Add medium spacing around the macOS window close/minimize/zoom buttons.- Since:
- 3.4
- See Also:
-
MACOS_WINDOW_BUTTONS_SPACING_LARGE
Add large spacing around the macOS window close/minimize/zoom buttons.(requires macOS 11+; "medium" is used on older systems)
- Since:
- 3.4
- See Also:
-
-
Method Details
-
clientPropertyEquals
Checks whether a client property of a component has the given value. -
clientPropertyBoolean
Checks whether a client property of a component is a boolean and returns its value. If the client property is not set, or not a boolean, defaultValue is returned. -
clientPropertyBooleanStrict
-
clientPropertyInt
Checks whether a client property of a component is an integer and returns its value. If the client property is not set, or not an integer, defaultValue is returned. -
clientPropertyColor
Checks whether a client property of a component is a color and returns its value. If the client property is not set, or not a color, defaultValue is returned. -
clientProperty
Returns the value of the specified client property if it is an instance of the specified type. Otherwise, defaultValue is returned.- Since:
- 2
-