Releases: JFormDesigner/FlatLaf
3.5.2
Change Log
Fixed bugs
- Windows: Fixed repaint issues (ghosting) on some systems (probably depending
on graphics card/driver). This is done by setting Java system property
sun.java2d.d3d.onscreen
tofalse
(but only ifsun.java2d.d3d.onscreen
,
sun.java2d.d3d
andsun.java2d.noddraw
are not yet set), which disables
usage of Windows Direct3D (DirectX) onscreen surfaces. Component rendering
still uses Direct3D. (issue #887) - FlatLaf window decorations:
- Iconify/maximize/close buttons did not fill whole title bar height, if some
custom component in menu bar increases title bar height. (issue #897) - Windows: Fixed possible application freeze when using custom component that
overridesComponent.contains(int x, int y)
and invokes
SwingUtilities.convertPoint()
(or similar) from the overridden method.
(issue #878)
- Iconify/maximize/close buttons did not fill whole title bar height, if some
- TextComponents: Fixed too fast scrolling in multi-line text components when
using touchpads (e.g. on macOS). (issue #892) - ToolBar: Fixed endless loop if button in Toolbar has focus and is made
invisible. (issue #884)
Other Changes
- FlatLaf window decorations: Added client property
JRootPane.titleBarHeight
to allow specifying a (larger) preferred height for the title bar. (issue #897) - Added system property
flatlaf.useRoundedPopupBorder
to allow disabling
native rounded popup borders on Windows 11 and macOS. On macOS 14.4+, where
rounded popup borders are disabled since FlatLaf 3.5 because of occasional
problems, you can use this to enable rounded popup borders (at your risk).
3.5.1
Fixes a regression and some bugs in 3.5. If you use 3.5 it is recommended to upgrade to 3.5.1.
Change Log
Fixed bugs
- HTML: Fixed occasional cutoff wrapped text when using multi-line text in HTML
tags<h1>
...<h6>
,<code>
,<kbd>
,<big>
,<small>
or<samp>
.
(issue #873; regression in 3.5) - Popup: Fixed
UnsupportedOperationException: PERPIXEL_TRANSLUCENT translucency is not supported
exception on Haiku OS when showing popup (partly) outside of window. (issue #869) - HiDPI: Fixed occasional wrong repaint areas when using
HiDPIUtils.installHiDPIRepaintManager()
. (see PR #864) - Added system property
flatlaf.useSubMenuSafeTriangle
to allow disabling
submenu safe triangle (PR #490) for SWTSwing. (issue #870)
3.5
Change Log
New features and improvements
- Table: Support rounded selection. (PR #856)
- Button and ToggleButton: Added border colors for pressed and selected states. (issue #848)
- Label: Support painting background with rounded corners. (issue #842)
- Popup: Fixed flicker of popups (e.g. tooltips) while they are moving (e.g.
following mouse pointer). (issues #832 and #672) - FileChooser: Wrap shortcuts in scroll pane. (issue #828)
- Theme Editor: On macOS, use larger window title bar. (PR #779)
Fixed bugs
- macOS: Disabled rounded popup border (see PR #772) on macOS 14.4+ because it
may freeze the application and crash the macOS WindowServer process
(reports vary from Finder restarts to OS restarts).
This is a temporary change until a solution is found.
See NetBeans issues apache/netbeans#7560 and apache/netbeans#6647. - FlatLaf window decorations: Window top border on Windows 10 in "full window
content" mode was not fully repainted when activating or deactivating window. (issue #809) - Button and ToggleButton: UI properties
[Toggle]Button.selectedForeground
and
[Toggle]Button.pressedForeground
did not work for HTML text. (issue #848) - HTML: Fixed font sizes for HTML tags
<h1>
...<h6>
,<code>
,<kbd>
,
<big>
,<small>
and<samp>
in HTML text for components Button, CheckBox,
RadioButton, MenuItem (and subclasses), JideLabel, JideButton, JXBusyLabel and
JXHyperlink. Also fixed for Label and ToolTip if using Java 11+. - ScrollPane: Fixed/improved border painting at 125% - 175% scaling to avoid
different border thicknesses. (issue #743) - Table: Fixed painting of alternating rows below table if auto-resize mode is
JTable.AUTO_RESIZE_OFF
and table width is smaller than scroll pane (was not
updated when table width changed and was painted on wrong side in
right-to-left component orientation). - Theme Editor: Fixed occasional empty window on startup on macOS.
- FlatLaf window decorations: Fixed black line sometimes painted on top of
(native) window border on Windows 11. (issue #852) - HiDPI: Fixed incomplete component paintings at 125% or 175% scaling on Windows
where sometimes a 1px wide area at the right or bottom component edge is not
repainted. E.g. ScrollPane focus indicator border. (issues #860 and #582)
Incompatibilities
- ProgressBar: Log warning (including stack trace) when uninstalling
indeterminate progress bar UI or usingJProgressBar.setIndeterminate(false)
not on AWT thread, because this may throw NPE inFlatProgressBarUI.paint()
.
(issues #841 and #830) - Panel: Rounded background of panel with rounded corners is now painted even if
panel is not opaque. (issue #840)
3.4.1
Change Log
Fixed bugs
- SplitPane: Update divider when client property
JSplitPane.expandableSide
changed. - TabbedPane: Fixed swapped back and forward scroll buttons when using
TabbedPane.scrollButtonsPlacement = trailing
(regression in FlatLaf 3.3). - Fixed missing window top border on Windows 10 in "full window content" mode. (issue #809)
- Extras:
- Native libraries: Added API version check to test whether native library
matches the JAR (bad builds could e.g. ship a newer JAR with an older
incompatible native library) and to test whether native methods can be invoked
(some security software allows loading native library but blocks method invocation). - macOS: Fixed crash when running in WebSwing. (issue #826; regression in 3.4)
Incompatibilities
- File names of custom properties files for nested Laf classes now must include
name of enclosing class name. E.g. nested Laf classIntelliJTheme.ThemeLaf
usedThemeLaf.properties
in previous versions, but now needs to be named
IntelliJTheme$ThemeLaf.properties
.
3.4
BTW if you'd like to support the FlatLaf open-source project, please consider sponsoring it. Thank you very much for doing so.
Highlights
"full window content" mode for FlatLaf window decorations (Windows 10/11 and Linux)
Full window content mode allows you to extend the content into the window title bar. This means that the content pane (and glass pane) of the Swing window is extended into the window title bar. The window icon and title are automatically hidden. Only the minimize/maximize/close buttons stay visible. So your application can use (nearly) the whole window area.
You can try out "full window content" mode in FlatLaf Demo.
Press the "expand" button on the right side in the tab area.
macOS: window title bar close/minimize/zoom buttons spacing
If using full window content mode on macOS, it is now possible to use larger space
around the close/minimize/zoom buttons (traffic lights) to give your application a "native" look:
Change Log
New features and improvements
- FlatLaf window decorations (Windows 10/11 and Linux): Support "full window
content" mode, which allows you to extend the content into the window title bar. (PR #801) - macOS: Support larger window title bar close/minimize/zoom buttons spacing in
full window content mode and introduced "buttons placeholder". (PR #779) - Native libraries:
- System property
flatlaf.nativeLibraryPath
now supports loading native
libraries named the same as on Maven central. - Published
flatlaf-<version>-no-natives.jar
to Maven Central. This JAR is
equal toflatlaf-<version>.jar
, except that it does not contain the
FlatLaf native libraries. The Maven "classifier" to use this JAR is
no-natives
. You need to distribute the FlatLaf native libraries with your application.
See https://www.formdev.com/flatlaf/native-libraries/ for more details. - Improved log messages for loading fails.
- System property
- Fonts: Updated Inter to v4.0.
- Table: Select all text in cell editor when starting editing using
F2
key on Windows or Linux. (issue #652)
Fixed bugs
Fonts: Inter 4.0
Updated Inter font to v4.0.
3.3
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.
3.2.5
3.2.4
3.2.3
Update: Do not use this release because it throws a NPE in (unusual) case that the popup invoker is null.
Another bug fix release that fixes a JDK 21+ bug on Linux with Wayland regarding popups that request focus.
If you use complex popups (e.g. with text fields or other components that request focus)
and your application runs on Linux in Java 21 or later, then it is recommended to upgrade to this version.
Change Log
Fixed bugs
- PopupMenu: Popups that request focus were not shown on Linux with Wayland and Java 21. (issue #752)