Overview
VAqua is a Java Swing look and feel that runs on macOS and simulates the appearance and behavior of standard macOS UI components. It is based on the Aqua look and feel that is distributed with the Oracle JDK, rehosted on a new native rendering library and significantly extended. VAqua runs on macOS 10.10 (Yosemite) through macOS 14 (Sonoma) and on JDK 8 and later.
Key features of VAqua:
- Supports the macOS 11 UI, including the new slider style, the inset view option for lists, tables, and trees, and a smattering of large size controls. (The new unified title bar style is not supported.)
- Facilitates the use of sheets, the construction of segmented controls, and access to the system appearance (light or dark) and system colors using a separate client library. This library uses VAqua, but does not require it.
- Supports the dark appearance introduced in macOS 10.14 and the graphite appearance in previous macOS releases.
- Supports accent colors and the high contrast accessibility option.
- Provides a significantly extended JFileChooser that simulates the native open and save panels.
- Supports animated focus rings.
- Supports both legacy and overlay scroll bars in scroll panes. Wheel scrolling is supported whether or not the scroll bars are visible.
- Supports displaying windows as native sheets.
- Supports windows using the unified tool bar style, including modern styles where the tool bar is combined with the title bar or replaces the title bar.
- Supports windows where the content occupies the entire window, with the title bar overlayed on top.
- Supports windows with top and/or bottom window margins.
- Supports use of the native file icon in window title bars.
- Supports vibrant backgrounds for sidebars, popup menus, and sheets and on selected windows and other components.
- Supports the Full Keyboard Access user preference. When this user preference is not selected, only text fields and lists display focus rings.
- Supports native styling for contextual and pop up menus, including rounded corners and native scrolling behavior (no scroll bars).
- Supports additional button and pop up button styles. Renders some existing styles more accurately.
- Automatically supports the textured and tool bar item button styles for tool bar buttons, segmented buttons, pop up buttons, combo boxes, and text fields.
- Supports a fixed label or icon for a pull down menu button.
- Supports template icons in textured buttons, segmented buttons, and pull down menu buttons.
- Supports group boxes.
- Supports color wells, with automatic connection to the native color panel.
- Supports slider track highlighting (when appropriate).
- Supports striped styles for lists, tables, and trees. Supports a sidebar style for trees.
- Determines the appropriate table header sort indicator from the table RowSorter.
- Supports small and mini sizes for circular progress indicators (windmills), sliders, and tabbed panes.
- Supports a small size option for scroll panes.
- Supports thin and thick split pane dividers.
- Improves support for right-to-left layout.
VAqua includes substantial contributions from the Quaqua look and feel and supports many of the same client properties.
VAqua supports almost all of the client properties supported by the Aqua look and feel (documented in Apple Technical Note TN2196).[1]
Requirements
VAqua runs on macOS 10.10 (Yosemite) through macOS 14 (Sonoma).[2]
VAqua requires JDK 8 or later.
Licensing
VAqua is open source with contributions from multiple sources using multiple licenses. The Aqua look and feel code and original contributions are licensed under the GNU General Public License version 2 with a linking exception (commonly known as the Classpath exception). Contributions from the Quaqua look and feel are dual licensed under the GNU Lesser General Public License version 2.1 and the Modified BSD License. The TreeTable classes (original author unknown) are licensed under the GNU Lesser General Public License version 3.
[1] The exceptions: Size variants on linear progress bars
are not supported, because they are not relevant on the supported releases of macOS.
The JTableHeader.selectedColumn
and JTableHeader.sortDirection
client properties are not supported, because VAqua
determines the sort indicator from the RowSorter.
[2] The Java for OS X 2017-001 upgrade must be installed on Yosemite. This installer upgrades the Java Runtime Support framework. It also installs the old Apple Java 1.6, which is not used by VAqua and may be deleted if not needed for some other reason.