Skip to content

Releases: JFormDesigner/FlatLaf

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".

3.1.1

18 Apr 13:37
Compare
Choose a tag to compare

This is a bug fix release that fixes two regressions in FlatLaf 3.1.
Users of FlatLaf 3.1 that use IntelliJ themes or use WebStart, are recommended to update to this release.

Change Log

Fixed bugs

  • IntelliJ Themes:
    • Fixed too large menu item paddings and too large table/tree row heights (all
      "Material Theme UI Lite" themes; issue #667; regression in FlatLaf 3.1).
    • Fixed too large tree row height in "Carbon", "Dark Purple", "Gray",
      "Material Design Dark", "Monokai Pro", "One Dark" and "Spacegray" themes.
  • Native libraries: Fixed IllegalArgumentException: URI scheme is not "file"
    when using FlatLaf in WebStart. (issue #668; regression in FlatLaf 3.1)

3.1

12 Apr 12:22
Compare
Choose a tag to compare
3.1

Highlights

Windows 11: rounded popup borders

On Windows 11, popups now use native Windows 11 rounded borders and drop shadows, which gives them a beautiful look:

image

Table: header hover and pressed feedback

Columns in table header now show hover and pressed feedback:

image

Change Log

New features and improvements

  • Windows 11: Popups (JPopupMenu, JComboBox, JToolTip, etc.) now use
    native Windows 11 rounded borders and drop shadows. (PR #643)
  • Fonts:
  • Theme Editor: Support macOS light and dark themes.
  • TabbedPane: Support hover and focused tab foreground colors. (issue #627)
  • TabbedPane: tabbedPane.getBackgroundAt(tabIndex) now has higher priority
    than TabbedPane.focusColor and TabbedPane.selectedBackground. If
    tabbedPane.setBackgroundAt(tabIndex) is used to set a color for a single
    tab, then this color is now used even if the tab is focused or selected.
  • TableHeader: Support column hover and pressed background and foreground
    colors. (issue #636)
  • Native libraries: Made it easier to distribute FlatLaf native libraries
    (Windows .dll and Linux .so) to avoid problems on operating systems with
    enabled execution restrictions.
    See https://www.formdev.com/flatlaf/native-libraries/ for more details. (issue #624)
    • Published native libraries to Maven Central for easy using them as
      dependencies in Gradle and Maven.
    • If available, native libraries are now loaded from same location as
      flatlaf.jar, otherwise they are extract from flatlaf.jar to temporary
      folder and loaded from there.
    • Windows DLLs are now digitally signed with FormDev Software GmbH certificate.

Fixed bugs

  • FlatLaf window decorations:
    • Fixed inconsistent size of glass pane depending on whether FlatLaf window
      decorations are used (e.g. Windows 10/11) or not (e.g. macOS). Now the glass
      pane no longer overlaps the FlatLaf window title bar. (issue #630)
    • Linux: Fixed broken window resizing on multi-screen setups. (issue #632)
    • Linux: Fixed behavior of maximize/restore button when tiling window to left
      or right half of screen. (issue #647)
  • IntelliJ Themes:
    • Fixed default button hover background in "Solarized Light" theme. (issue #628)
    • Avoid that accent color affect some colors in some IntelliJ themes. (issue #625)
    • Updated "Hiberbee Dark" and "Material Theme UI Lite" themes.
  • Styling: Fixed resolving of UI variables in styles that use other variables.
  • MenuItem: Fixed horizontal alignment of icons. (issue #631)
  • Table: Fixed potential performance issue with paint cell focus indicator
    border. (issue #654)
  • Tree: Fixed missing custom closed/opened/leaf icons of a custom
    DefaultTreeCellRenderer. (issue #653; regression since implementing PR #609
    in FlatLaf 3.0)
  • Tree: Fixed truncated node text and too small painted non-wide node background
    if custom cell renderer sets icon, but not disabled icon, and tree is
    disabled. (issue #640)
  • Fixed HiDPIUtils.paintAtScale1x(), which painted at wrong location if
    graphics is rotated, is scaled and x or y parameters are not zero. (issue #646)

Fonts: JetBrains Mono 2.304

24 Jan 17:48
Compare
Choose a tag to compare

3.0

19 Dec 16:17
Compare
Choose a tag to compare
3.0

Hooray, hooray, it's done. FlatLaf 3.0 is here 🎁 🎉 🎅 🤶 🧑‍🎄

BTW if you'd like to support the FlatLaf open-source project, please consider sponsoring it. Thank you very much for doing so.

Highlights

macOS themes

New light and dark themes that use macOS colors and look similar to native macOS controls:

image

Fonts

Packaged fonts Inter, Roboto and JetBrains Mono into JARs (available on Maven Central) and provide an easy way to use them with FlatLaf.

Rounded selection

JMenuItem, JComboBox, JList and JTree components now support rounded selection.
This is currently used only in macOS themes for menus and combo boxes, but may be used in standard themes as well in the future.
Feel free to use it in own themes to give your application a special look. See PRs for instructions.

image

Rounded outlined icons

JFileChooser, JOptionPane, JPasswordField and JTree got new modern rounded outlined icons:

image

Change Log

New features and improvements

  • macOS light and dark themes: The two new themes FlatMacLightLaf and
    FlatMacDarkLaf use macOS colors and look similar to native macOS controls.
    (PRs #533, #612 and #607)
  • Fonts: Packaged some fonts into JARs and provide an easy way to use them
    with FlatLaf. (PRs #545, #614 and #615) At the moment there are three fonts:
  • Rounded selection: Optionally use rounded selection in:
  • Tree: Hide default closed/opened/leaf icons by default. Set UI value
    Tree.showDefaultIcons to true to show them.
  • ToolBar: Hover effect for button groups. (PR #534)
  • Icons: New modern rounded outlined icons for JFileChooser,
    JOptionPane, JPasswordField and JTree. (PR #577)

Fixed bugs

  • FileChooser: Fixed layout of (optional) accessory component and fixed too
    large right margin. (issue #604; regression since implementing PR #522 in FlatLaf 2.3)
  • Tree:
    • Fixed missing tree lines (if enabled) for wide-selected rows. (issue #598)
    • Fixed scaling of tree lines and fixed alignment to expand/collapse arrows.
    • Removed support for dashed tree lines. Tree.lineTypeDashed is now ignored.
  • SwingX: Fonts in JXHeader, JXMonthView, JXTaskPane and JXTitledPanel
    were not updated when changing default font.

2.6

18 Oct 09:31
Compare
Choose a tag to compare
2.6

Change Log

New features and improvements

  • If value of system property flatlaf.nativeLibraryPath is system, then
    System.loadLibrary(String) is used to load the native library.
  • TabbedPane: Switch and close tabs on left mouse click only. (PR #595)

Fixed bugs

  • ComboBox and Spinner: Fixed missing arrow buttons if preferred height is zero.
    Minimum width of arrow buttons is 3/4 of default width.
  • MenuBar: Fixed NPE in FlatMenuItemRenderer.getTopLevelFont() if menu item
    does not have a parent. (issue #600; regression since implementing #589 in
    FlatLaf 2.5)
  • ScrollBar: Show "pressed" feedback on track/thumb only for left mouse button.
    If absolute positioning is enabled (the default), then also for middle mouse
    button.
  • Arrow buttons in ComboBox, Spinner, ScrollBar and TabbedPane: Show "pressed"
    feedback only for left mouse button.
  • ScaledImageIcon: Do not throw exceptions if image was has invalid size (e.g.
    not found). Instead, paint a red rectangle (similar to FlatSVGIcon).
  • Fixed NPE in FlatUIUtils.isCellEditor(). (issue #601)