Interface FlatSystemProperties


  • public interface FlatSystemProperties
    Defines/documents own system properties used in FlatLaf.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ANIMATION
      Specifies whether animations are enabled.
      static java.lang.String MENUBAR_EMBEDDED
      Specifies whether the menu bar is embedded into the window title pane if window decorations are enabled.
      static java.lang.String NATIVE_LIBRARY_PATH
      Specifies a directory in which the FlatLaf native libraries are searched for.
      static java.lang.String UI_SCALE
      Specifies a custom scale factor used to scale the UI.
      static java.lang.String UI_SCALE_ALLOW_SCALE_DOWN
      Specifies whether values smaller than 100% are allowed for the user scale factor (see UIScale.getUserScaleFactor()).
      static java.lang.String UI_SCALE_ENABLED
      Specifies whether user scaling mode is enabled.
      static java.lang.String UPDATE_UI_ON_SYSTEM_FONT_CHANGE
      Specifies whether FlatLaf updates the UI when the system font changes.
      static java.lang.String USE_JETBRAINS_CUSTOM_DECORATIONS
      Deprecated.
      No longer used since FlatLaf 3.3.
      static java.lang.String USE_NATIVE_LIBRARY
      Specifies whether FlatLaf native library should be used.
      static java.lang.String USE_SUB_MENU_SAFE_TRIANGLE
      Specifies whether safe triangle is used to improve usability of submenus.
      static java.lang.String USE_TEXT_Y_CORRECTION
      Specifies whether vertical text position is corrected when UI is scaled on HiDPI screens.
      static java.lang.String USE_UBUNTU_FONT
      Specifies whether Ubuntu font should be used on Ubuntu Linux.
      static java.lang.String USE_WINDOW_DECORATIONS
      Specifies whether native window decorations should be used when creating JFrame or JDialog.
    • Method Summary

      Static Methods 
      Modifier and Type Method Description
      static boolean getBoolean​(java.lang.String key, boolean defaultValue)
      Checks whether a system property is set and returns true if its value is "true" (case-insensitive), otherwise it returns false.
      static java.lang.Boolean getBooleanStrict​(java.lang.String key, java.lang.Boolean defaultValue)
      Checks whether a system property is set and returns Boolean.TRUE if its value is "true" (case-insensitive) or returns Boolean.FALSE if its value is "false" (case-insensitive).
    • Field Detail

      • UI_SCALE

        static final java.lang.String UI_SCALE
        Specifies a custom scale factor used to scale the UI.

        If Java runtime scales (Java 9 or later), this scale factor is applied on top of the Java system scale factor. Java 8 does not scale and this scale factor replaces the user scale factor that FlatLaf computes based on the font. To replace the Java 9+ system scale factor, use system property "sun.java2d.uiScale", which has the same syntax as this one.

        Since FlatLaf 1.1.2: Scale factors less than 100% are allowed.

        Allowed Values e.g. 1.5, 1.5x, 150% or 144dpi (96dpi is 100%)

        See Also:
        Constant Field Values
      • UI_SCALE_ENABLED

        static final java.lang.String UI_SCALE_ENABLED
        Specifies whether user scaling mode is enabled.

        Allowed Values false and true
        Default true

        See Also:
        Constant Field Values
      • UI_SCALE_ALLOW_SCALE_DOWN

        static final java.lang.String UI_SCALE_ALLOW_SCALE_DOWN
        Specifies whether values smaller than 100% are allowed for the user scale factor (see UIScale.getUserScaleFactor()).

        Allowed Values false and true
        Default false

        Since:
        1.1.2
        See Also:
        Constant Field Values
      • USE_UBUNTU_FONT

        static final java.lang.String USE_UBUNTU_FONT
        Specifies whether Ubuntu font should be used on Ubuntu Linux. By default, if not running in a JetBrains Runtime, the Liberation Sans font is used because there are rendering issues (in Java) with Ubuntu fonts.

        Allowed Values false and true
        Default false

        See Also:
        Constant Field Values
      • USE_WINDOW_DECORATIONS

        static final java.lang.String USE_WINDOW_DECORATIONS
        Specifies whether native window decorations should be used when creating JFrame or JDialog.

        Setting this to true forces using native window decorations even if they are not enabled by the application.
        Setting this to false disables using native window decorations.

        This system property has higher priority than client property FlatClientProperties.USE_WINDOW_DECORATIONS and UI default TitlePane.useWindowDecorations.

        (requires Window 10/11)

        Allowed Values false and true
        Default none

        See Also:
        Constant Field Values
      • USE_JETBRAINS_CUSTOM_DECORATIONS

        @Deprecated
        static final java.lang.String USE_JETBRAINS_CUSTOM_DECORATIONS
        Deprecated.
        No longer used since FlatLaf 3.3. Retained for API compatibility.
        Specifies whether JetBrains Runtime custom window decorations should be used when creating JFrame or JDialog. Requires that the application runs in a JetBrains Runtime (based on OpenJDK).

        Setting this to false disables using JetBrains Runtime custom window decorations. Then FlatLaf native window decorations are used.

        (requires Window 10/11)

        Allowed Values false and true
        Default false (since v2; was true in v1)

        See Also:
        Constant Field Values
      • MENUBAR_EMBEDDED

        static final java.lang.String MENUBAR_EMBEDDED
        Specifies whether the menu bar is embedded into the window title pane if window decorations are enabled.

        Setting this to true forces embedding.
        Setting this to false disables embedding.

        This system property has higher priority than client property FlatClientProperties.MENU_BAR_EMBEDDED and UI default TitlePane.menuBarEmbedded.

        (requires Window 10/11)

        Allowed Values false and true
        Default none

        See Also:
        Constant Field Values
      • ANIMATION

        static final java.lang.String ANIMATION
        Specifies whether animations are enabled.

        Allowed Values false and true
        Default true

        See Also:
        Constant Field Values
      • USE_TEXT_Y_CORRECTION

        static final java.lang.String USE_TEXT_Y_CORRECTION
        Specifies whether vertical text position is corrected when UI is scaled on HiDPI screens.

        Allowed Values false and true
        Default true

        See Also:
        Constant Field Values
      • UPDATE_UI_ON_SYSTEM_FONT_CHANGE

        static final java.lang.String UPDATE_UI_ON_SYSTEM_FONT_CHANGE
        Specifies whether FlatLaf updates the UI when the system font changes. If true, SwingUtilities.updateComponentTreeUI(java.awt.Component) gets invoked for all windows if the system font has changed. This is the similar to when switching to another look and feel (theme). Applications that do not work correctly when switching look and feel, should disable this option to avoid corrupted UI.

        Allowed Values false and true
        Default true

        Since:
        2.5
        See Also:
        Constant Field Values
      • USE_NATIVE_LIBRARY

        static final java.lang.String USE_NATIVE_LIBRARY
        Specifies whether FlatLaf native library should be used.

        Setting this to false disables loading native library, which also disables some features that depend on the native library.

        Allowed Values false and true
        Default true

        Since:
        3.2
        See Also:
        Constant Field Values
      • NATIVE_LIBRARY_PATH

        static final java.lang.String NATIVE_LIBRARY_PATH
        Specifies a directory in which the FlatLaf native libraries are searched for. The path can be absolute or relative to current application working directory. This can be used to avoid extraction of the native libraries to the temporary directory at runtime.

        If the value is "system" (supported since FlatLaf 2.6), then System.loadLibrary(String) is used to load the native library. This searches for the native library in classloader of caller (using ClassLoader.findLibrary(String)) and in paths specified in system properties sun.boot.library.path and java.library.path.

        If the native library can not be loaded from the given path (or via System.loadLibrary(String)), then the embedded native library is extracted to the temporary directory and loaded from there.

        The file names of the native libraries must be either:

        Note: Since FlatLaf 3.1 it is recommended to download the FlatLaf native libraries from Maven central and distribute them with your application in the same directory as flatlaf.jar. Then it is not necessary to set this system property. See https://www.formdev.com/flatlaf/native-libraries/ for details.

        Since:
        2
        See Also:
        Constant Field Values
      • USE_SUB_MENU_SAFE_TRIANGLE

        static final java.lang.String USE_SUB_MENU_SAFE_TRIANGLE
        Specifies whether safe triangle is used to improve usability of submenus.

        Allowed Values false and true
        Default true

        Since:
        3.5.1
        See Also:
        Constant Field Values
    • Method Detail

      • getBoolean

        static boolean getBoolean​(java.lang.String key,
                                  boolean defaultValue)
        Checks whether a system property is set and returns true if its value is "true" (case-insensitive), otherwise it returns false. If the system property is not set, defaultValue is returned.
      • getBooleanStrict

        static java.lang.Boolean getBooleanStrict​(java.lang.String key,
                                                  java.lang.Boolean defaultValue)
        Checks whether a system property is set and returns Boolean.TRUE if its value is "true" (case-insensitive) or returns Boolean.FALSE if its value is "false" (case-insensitive). Otherwise defaultValue is returned.