Skip to content

Releases: JFormDesigner/FlatLaf

3.5.2

18 Oct 11:55
Compare
Choose a tag to compare

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 to false (but only if sun.java2d.d3d.onscreen,
    sun.java2d.d3d and sun.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
      overrides Component.contains(int x, int y) and invokes
      SwingUtilities.convertPoint() (or similar) from the overridden method.
      (issue #878)
  • 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

05 Aug 17:06
Compare
Choose a tag to compare

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

16 Jul 22:24
Compare
Choose a tag to compare
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 using JProgressBar.setIndeterminate(false)
    not on AWT thread, because this may throw NPE in FlatProgressBarUI.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

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 on Windows or Linux. (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)