Highlights
macOS: native rounded borders for popups
Popups on macOS now use native macOS rounded borders (including native drop shadow):
ScrollPane: Support rounded border
ScrollPane now support using rounded border. See PR #713 for information how to enable this feature.
TabbedPane: Support vertical tabs
TabbedPane now supports rotated/vertical tabs:
Change Log
New features and improvements
- macOS (10.14+): Popups (
JPopupMenu
,JComboBox
,JToolTip
, etc.) now use
native macOS rounded borders. (PR #772; issue #715) - Native libraries: Added
libflatlaf-macos-arm64.dylib
andlibflatlaf-macos-x86_64.dylib
.
See also https://www.formdev.com/flatlaf/native-libraries/. - ScrollPane: Support rounded border. (PR #713)
- SplitPane: Support divider hover and pressed background colors. (PR #788)
- TabbedPane: Support vertical tabs. (PR #758, issue #633)
- TabbedPane: Paint rounded tab area background for rounded cards. (issue #717)
- ToolBar: Added styling properties
separatorWidth
andseparatorColor
.
Fixed bugs
- Button and ToggleButton: Selected buttons did not use explicitly set
foreground color. (issue 756) - FileChooser: Catch NPE in Java 21 when getting icon for
.exe
files that use
default Windows exe icon. (see JDK-8320692) - OptionPane: Fixed styling custom panel background in
JOptionPane
. (issue #761) - ScrollPane: Styling ScrollPane border properties did not work if view
component is a Table. - Table:
- TableHeader:
- No longer temporary replace header cell renderer while painting. This avoids
aStackOverflowError
in case that custom renderer does this too. (see
NetBeans issue #6835) This
also improves compatibility with custom table header implementations. - Header cell renderer background/foreground colors were not restored after
hover if renderer usesnull
for background/foreground. (PR #790)
- No longer temporary replace header cell renderer while painting. This avoids
- TabbedPane:
- Avoid unnecessary repainting whole tabbed pane content area when layouting
leading/trailing components. - Avoid unnecessary repainting of selected tab on temporary changes.
- Fixed "endless" layouting and repainting when using nested tabbed panes (top
and bottom tab placement) and RSyntaxTextArea (with enabled line-wrapping)
as tab content. (see jadx issue #2030)
- Avoid unnecessary repainting whole tabbed pane content area when layouting
- Fixed broken rendering after resizing window to minimum size and then
increasing size again. (issue #767)
Incompatibilities
- Removed support for JetBrains custom decorations, which required
JetBrains Runtime (JBR) 8 or 11. It did not work for JBR 17. System property
flatlaf.useJetBrainsCustomDecorations
is now ignored. Note: FlatLaf
window decorations continue to work with JBR.