Miscellaneous Customization

Size Options

Many components support several size options, including buttons, labels, check boxes, radio buttons, combo boxes, sliders, spinners, text fields, text areas, scroll panes, and tabbed panes. A size is specified using the JComponent.sizeVariant client property with values regular (the default), small, mini, or large. (The large size is supported only on macOS 11 and only for default styles of certain components.) The size option generally affects the default font for the component. In some cases, the size option also determines the fixed height and/or width of the component.

Title Bar Icons

The native title bar icon can be enabled in a frame by setting the boolean root pane client property Aqua.windowRepresentedFile to true.

Group Boxes

VAqua supports containers that display in the style of an Aqua group box, where the components are arranged inside a rounded rectangle with an optional title. To use this style, create a JPanel and set the JPanel.style client property to groupBox. To display a title above the group box, set the Aqua.groupBoxTitle client property to the title text.

When the group box style is used, VAqua defines a default border for the JPanel that positions the components of the JPanel properly within the rounded rectangle and leaves room for the title (if any) above the rounded rectangle. An application may set its own border on the JPanel, but one must be careful to provide enough empty space for the edge of the rounded rectangle and any title.

Windmill Progress Indicators

VAqua supports the windmill style circular form of indeterminate progress indicators. To use this style, set the JProgressBar.style client property to circular. Circular progress bars are supported in three sizes (see above). This option is supported only on indeterminate progress indicators.

Split Pane Divider Styles

VAqua supports three styles for split pane dividers. The default style is a thin divider. The other styles are wider and display a dimple. A split pane divider style is selected by setting the JSplitPane.style client property on the JSplitPane to thin, thick, or paneSplitter.

Option Pane Document

When an option pane has no selection values, VAqua creates a text field to display the message. The text field uses a default document. In some cases, it may be desirable to restrict the text that can be entered, by using a custom document. A custom document (an instance of javax.swing.text.Document) can be supplied by making it the value of the JOptionPane.textFieldDocument client property of the JOptionPane.

Identifying Custom Cell Editors

Certain components (combo boxes, text fields) display differently or use a different focus ring when they are used as cell editors in lists, tables, or trees. VAqua defines client properties that can be used to identify custom components as cell editors or containers of cell editors.

If the value of the component client property JComponent.isCellEditor is (Boolean) true, then the component is treated as a cell editor. If the value of this property is (Boolean) false, then the component is not treated as a cell editor. If the property is neither true nor false, then the component is treated as a cell editor if and only if its parent is recognized as a cell container. A custom component is recognized as a cell container if the value of its JComponent.isCellContainer client property is (Boolean) true.