Releases: JFormDesigner/FlatLaf
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. (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)
3.2.2
This is a bug fix release that fixes a JDK 19+ bug regarding HTML text in buttons.
If you use HTML text in buttons and your application runs in Java 19 or later,
then it is recommended to upgrade to this version.
Change Log
Fixed bugs
- Button: Fixed painting icon and text at wrong location when using HTML text,
left/right vertical alignment and running in Java 19+. (issue #746) - CheckBox and RadioButton: Fixed cut off right side when border is removed and
horizontal alignment is set toright
. (issue #734) - TabbedPane: Fixed NPE when using focusable component as tab component and
switching theme. (issue #745)
3.2.1
This is a bug fix release that fixes a memory leak in class MultiResolutionImageSupport
,
which may, in worst case, result in an out-of-memory situation. See change log below for details.
Change Log
Fixed bugs
- Fixed memory leak in
MultiResolutionImageSupport.create(int,Dimension[],Function<Dimension,Image>)
,
which caches images created by the producer function. Used byFlatSVGIcon.getImage()
and
FlatSVGUtils.createWindowIconImages()
.
If you use one of these methods, it is strongly recommended to upgrade to this
version, because if the returned image is larger and painted very often it may
result in an out-of-memory situation. (issue #726) - FileChooser: Fixed occasional NPE in
FlatShortcutsPanel
on Windows. (issue #718) - TextField: Fixed placeholder text painting, which did not respect horizontal
alignment property ofJTextField
. (issue #721) - Popop: Fixed drop shadow if popup overlaps a heavyweight component. (Windows 10 only; issue #626)
3.2
Highlights
New SVG renderer
The FlatLaf Extras library now used JSVG library (instead of svgSalamander) for SVG rendering.
JSVG provides improved SVG rendering and uses less memory compared to svgSalamander.
IntelliJ Themes improved
Many improvements and fixed were made to the FlatLaf IntelliJ Themes Pack.
If you use those themes it is highly recommended to upgrade to this release.
TabbedPane: rounded selection
TabbedPane now support rounded underline selection and rounded card tabs.
Card tabs now have rounded corners by default.
FileChooser: more localized texts
FileChooser now show localized text for all locales supported by Java's Metal look and feel.
Toolbox-style "small" window title bar
FlatLaf Window Decorations now supports toolbox-style "small" window title bar.
Windows on ARM
The FlatLaf native library is now also available for ARM 64-bit architecture on Windows.
Change Log
New features and improvements
- TabbedPane: Support rounded underline selection and rounded card tabs. (PR #703)
- FlatLaf window decorations:
- Extras: Class
FlatSVGIcon
now uses JSVG
library (instead of svgSalamander) for rendering. JSVG provides improved SVG
rendering and uses less memory compared to svgSalamander. (PR #684) - ComboBox: Improved location of selected item in popup if list is large and scrollable.
- FileChooser: Show localized text for all locales supported by Java's Metal
look and feel. (issue #680) - Added system property
flatlaf.useNativeLibrary
to allow disabling loading of
FlatLaf native library. (issue #674) - IntelliJ Themes:
- Reduced memory footprint by releasing Json data and ignoring IntelliJ UI
properties that are not used in FlatLaf. - Updated "Hiberbee Dark" and "Gradianto" themes.
- Reduced memory footprint by releasing Json data and ignoring IntelliJ UI
Fixed bugs
- Styling: Fixed scaling of some styling properties (
rowHeight
for Table and
Tree;iconTextGap
for Button, CheckBox and RadioButton). (issue #682) - Fixed
IllegalComponentStateException
when invoker is not showing in
SubMenuUsabilityHelper
. (issue #692) - macOS themes: Changing
@accentColor
variable in FlatLaf properties files did
not change all accent related colors for all components. - IntelliJ Themes:
- "Light Owl" theme: Fixed wrong (unreadable) text color in selected menu
items, selected text in text components, and selection in ComboBox popup
list. (issue #687) - "Gradianto Midnight Blue" theme: Fixed color of ScrollBar track, which was
not visible. (issue #686) - "Monocai" theme: Fixed unreadable text color of default buttons. (issue #693)
- "Vuesion" theme: Fixed foreground colors of disabled text.
- "Material UI Lite" themes: Fixed non-editable ComboBox button background.
- CheckBox and RadioButton: Fixed unselected icon colors for themes "Atom One
Light", "Cyan Light", "GitHub", "Light Owl", "Material Lighter" and "Solarized Light". - TabbedPane: Fixed focused tab background color for themes "Arc *", "Material
Design Dark", "Monocai", "One Dark", "Spacegray" and "Xcode-Dark". (issue #697) - TextComponents, ComboBox and Spinner: Fixed background colors of enabled
text components, to distinguish from disabled, for themes "Carbon", "Cobalt 2",
"Gradianto *", "Gruvbox *", "Monocai", "Spacegray", "Vuesion",
"Xcode-Dark", "GitHub", and "Light Owl". (issue #528) - Fixed wrong disabled text colors in "Dark Flat", "Hiberbee Dark", "Light
Flat", "Nord", "Solarized Dark" and "Solarized Light" themes. - Fixed colors for selection background/foreground, Separator, Slider track
and ProgressBar background in various themes.
- "Light Owl" theme: Fixed wrong (unreadable) text color in selected menu
- Native Windows libraries: Fixed crash when running in Java 8 and newer Java
version is installed inPATH
environment variable and using class
SystemInfo
before AWT initialization. (issue #673) - ComboBox: Fixed search in item list for text with spaces. (issue #691)
- FormattedTextField: On Linux, fixed
IllegalArgumentException: Invalid location
ifJFormattedTextField.setDocument()
is invoked in a focus gained
listener on that formatted text field. (issue #698) - PopupMenu: Make sure that popup menu does not overlap any operating system
task bar. (issue #701) - FileChooser: Use system icons on Windows with Java 17.0.3 (and later) 32-bit.
Only Java 17 - 17.0.2 32-bit do not use system icons because of a bug in Java
32-bit that crashes the application. (PR #709) - FileChooser: Fixed crash on Windows with Java 17 to 17.0.2 32-bit. Java 17
64-bit is not affected. (regression since FlatLaf 2.3; PR #522, see also issue #403)
Incompatibilities
- Extras: Class
FlatSVGIcon
now uses JSVG
library for SVG rendering. You need to replace svgSalamander with JSVG in your
build scripts and distributejsvg.jar
with your application. Also replace
com.kitfox.svg
withcom.github.weisj.jsvg
inmodule-info.java
files. - IntelliJ Themes: Removed all "Contrast" themes from "Material UI Lite".