Skip to content

Releases: JFormDesigner/FlatLaf

3.4.1

29 Mar 14:18
Compare
Choose a tag to compare

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:
    • FlatSVGIcon color filters now support linear gradients. (PR #817)
    • FlatSVGIcon: Use log level CONFIG instead of SEVERE and allow
      disabling logging. (issue #823)
    • Added support for JSplitPane.expandableSide client property to FlatSplitPane.
  • 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 class IntelliJTheme.ThemeLaf
    used ThemeLaf.properties in previous versions, but now needs to be named
    IntelliJTheme$ThemeLaf.properties.

3.4

20 Feb 11:06
Compare
Choose a tag to compare
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.

grafik

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:

image

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 to flatlaf-<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.
  • Fonts: Updated Inter to v4.0.
  • Table: Select all text in cell editor when starting editing using F2 key. (issue #652)

Fixed bugs

  • macOS: Setting window background (of undecorated window) to translucent color
    (alpha < 255) did not show the window translucent. (issue #705)
  • JIDE CommandMenuBar: Fixed ClassCastException when JIDE command bar displays
    JideMenu in popup. (PR #794)

Fonts: Inter 4.0

24 Jan 17:49
Compare
Choose a tag to compare

3.3

11 Jan 18:39
Compare
Choose a tag to compare
3.3

Highlights

macOS: native rounded borders for popups

Popups on macOS now use native macOS rounded borders (including native drop shadow):

image image

ScrollPane: Support rounded border

ScrollPane now support using rounded border. See PR #713 for information how to enable this feature.

grafik grafik

TabbedPane: Support vertical tabs

TabbedPane now supports rotated/vertical tabs:

image image

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 and libflatlaf-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 and separatorColor.

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:
    • Switching theme looses table grid and intercell spacing. (issues #733 and #750)
    • Fixed background of boolean columns when using alternating row colors. (issue #780)
    • Fixed border arc of components in complex table cell editors. (issue #786)
  • TableHeader:
    • No longer temporary replace header cell renderer while painting. This avoids
      a StackOverflowError 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 uses null for background/foreground. (PR #790)
  • 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)
  • 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

21 Oct 22:21
Compare
Choose a tag to compare

Fixes a regression in 3.2.1.

Change Log

Fixed bugs

  • Popup: Fixed NPE if popup invoker is null on Windows 10.
    (issue #753; regression in 3.2.1 in fix for #626)

3.2.4

21 Oct 16:44
Compare
Choose a tag to compare

Fixes a regression in 3.2.3.

Change Log

Fixed bugs

  • Popup: Fixed NPE if popup invoker is null on Linux with Wayland and Java 21.
    (issue #752; regression in 3.2.3)

3.2.3

21 Oct 15:44
Compare
Choose a tag to compare

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

15 Oct 17:28
Compare
Choose a tag to compare

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 to right. (issue #734)
  • TabbedPane: Fixed NPE when using focusable component as tab component and
    switching theme. (issue #745)

3.2.1

04 Sep 11:59
Compare
Choose a tag to compare

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 by FlatSVGIcon.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 of JTextField. (issue #721)
  • Popop: Fixed drop shadow if popup overlaps a heavyweight component. (Windows 10 only; issue #626)

3.2

12 Aug 16:58
Compare
Choose a tag to compare
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.

grafik

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.

grafik

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:
    • Support for Windows on ARM 64-bit. (issue #443, PR #707)
    • Support toolbox-style "small" window title bar. (issue #659, PR #702)
  • 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.

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.
  • Native Windows libraries: Fixed crash when running in Java 8 and newer Java
    version is installed in PATH 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 if JFormattedTextField.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 distribute jsvg.jar with your application. Also replace
    com.kitfox.svg with com.github.weisj.jsvg in module-info.java files.
  • IntelliJ Themes: Removed all "Contrast" themes from "Material UI Lite".