代码拉取完成,页面将自动刷新
flatlaf.nativeLibraryPath
now supports
loading native libraries named the same as on Maven central. Improved log
messages for loading fails.ClassCastException
when JIDE command bar displays
JideMenu
in popup. (PR #794)JPopupMenu
, JComboBox
, JToolTip
, etc.) now use
native macOS rounded borders. (PR #772; issue #715)libflatlaf-macos-arm64.dylib
and
libflatlaf-macos-x86_64.dylib
. See also
https://www.formdev.com/flatlaf/native-libraries/.separatorWidth
and separatorColor
..exe
files that use
default Windows exe icon. (see
JDK-8320692)JOptionPane
. (issue
#761)boolean
columns when using alternating row colors.
(issue #780)StackOverflowError
in case that custom renderer does this too. (see
NetBeans issue #6835) This
also improves compatibility with custom table header implementations.null
for background/foreground. (PR #790)flatlaf.useJetBrainsCustomDecorations
is now ignored. Note: FlatLaf
window decorations continue to work with JBR.null
on Windows 10. (issue #753;
regression in 3.2.1 in fix for #626)null
on Linux with Wayland and Java 21.
(issue #752; regression in 3.2.3)right
. (issue #734)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)FlatShortcutsPanel
on Windows. (issue
#718)JTextField
. (issue #721)FlatSVGIcon
now uses JSVG
library (instead of svgSalamander) for rendering. JSVG provides improved SVG
rendering and uses less memory compared to svgSalamander. (PR #684)flatlaf.useNativeLibrary
to allow disabling loading of
FlatLaf native library. (issue #674)rowHeight
for Table and
Tree; iconTextGap
for Button, CheckBox and RadioButton). (issue #682)IllegalComponentStateException
when invoker is not showing in
SubMenuUsabilityHelper
. (issue #692)@accentColor
variable in FlatLaf properties files did
not change all accent related colors for all components.PATH
environment variable and using class
SystemInfo
before AWT initialization. (issue #673)IllegalArgumentException: Invalid location
if JFormattedTextField.setDocument()
is invoked in a focus gained
listener on that formatted text field. (issue #698)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.IllegalArgumentException: URI scheme is not "file"
when using FlatLaf in WebStart. (issue #668; regression in FlatLaf 3.1)JPopupMenu
, JComboBox
, JToolTip
, etc.) now use
native Windows 11 rounded borders and drop shadows. (PR #643)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..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)
flatlaf.jar
, otherwise they are extract from flatlaf.jar
to temporary
folder and loaded from there.DefaultTreeCellRenderer
. (issue #653; regression since implementing PR #609
in FlatLaf 3.0)HiDPIUtils.paintAtScale1x()
, which painted at wrong location if
graphics is rotated, is scaled and x
or y
parameters are not zero. (issue
#646)FlatMacLightLaf
and
FlatMacDarkLaf
use macOS colors and look similar to native macOS controls.
(PRs #533, #612 and #607)Tree.showDefaultIcons
to true
to show them.JFileChooser
,
JOptionPane
, JPasswordField
and JTree
. (PR #577)Tree.lineTypeDashed
is now ignored.JXHeader
, JXMonthView
, JXTaskPane
and JXTitledPanel
were not updated when changing default font.flatlaf.nativeLibraryPath
is system
, then
System.loadLibrary(String)
is used to load the native library.FlatMenuItemRenderer.getTopLevelFont()
if menu item
does not have a parent. (issue #600; regression since implementing #589 in
FlatLaf 2.5)FlatSVGIcon
).FlatUIUtils.isCellEditor()
. (issue #601)MenuBar
and
MenuItem
. (issue #587)MenuBar.font
instead of Menu.font
. (issue
#589)TabbedPane.rotateTabRuns
to false
. (issue #574)TitlePane.showIconInDialogs
to false
. (issue #589)TitlePane.font
to customize window title font. (issue #589)flatlaf.updateUIOnSystemFontChange
to allow disabling
automatic UI update when system font changes. (issue #580)MenuItem.acceleratorDelimiter
on macOS. (was null
,
is now an empty string)FlatUIUtils.resetRenderingHints()
. (issue #575)JXMonthView
and
JXDatePicker
.TitlePane.showIconBesideTitle
to true
.FlatLaf.initialize()
twice in NetBeans GUI builder) and using menu that has
submenus. See
NetBeans issue #4231
for details.HiDPIUtils.paintAtScale1x()
now supports rotated graphics. (issue #557)Consolas
or Courier New
as monospaced font on
Windows because they have bad vertically placement.sun.java2d.opengl
is
true
on Windows 10. (issue #540)Table.paintOutsideAlternateRows
to true
.
Requires that Table.alternateRowColor
is set to a color. (issue #504)TitledBorder
text color in "Monokai Pro" theme.
(issue #524)JSplitPane.expandableSide
to "left"
or "right"
). (issue #355)StackOverflowError
caused by layout loop that may occur
under special circumstances. (issue #513)Component.accentColor
UI property now has useful theme
specific values. (issue #507)JFrame.setDefaultLookAndFeelDecorated(true)
and
JDialog.setDefaultLookAndFeelDecorated(true)
before creating a window.
(issue #482)ScrollBar.minimumButtonSize
to specify minimum
scroll arrow button size (if shown). (issue #493)FlatUIUtils.paintArrow()
(and class FlatArrowButton
) now paints
arrows one pixel smaller than before. To fix this, increase parameter
arrowSize
by one.JComponent.outline
(issue
#480).JComponent.getToolTipLocation()
and wants place tooltip under mouse
location. (issue #468)FlatSVGIcon
. (issue #465)module-info.class
from META-INF\versions\9\
to root folder of JARs.
(issue #466)flatlaf.nativeLibraryPath
to load native libraries
from a directory. (PR #453)FlatLaf$ActiveFont.createValue()
if UIManager.getFont()
is invoked from
multiple threads. (issue #456)JPasswordField.setEchoChar()
was invoked from application. (PR #442; issue
#173)flatlaf.useJetBrainsCustomDecorations
is now false
by default (was true
in FlatLaf 1.x). (issue #454)java.util.Map
.
(PR #341)mySlider.putClientProperty( "FlatLaf.style", "trackWidth: 2" );
mySlider.putClientProperty( "FlatLaf.styleClass", "myclass" );
JRootPane.titleBarShowIcon
to false
; for all windows set UI
value TitlePane.showIcon
to false
).OptionPane.showIcon
to true
. (issue #416)JTextField.leadingIcon
or JTextField.trailingIcon
to a
javax.swing.Icon
). (PR #378; issue #368)JTextField.leadingComponent
or JTextField.trailingComponent
to a
java.awt.Component
). (PR #386)JTextField.showClearButton
to true
). (PR #442)PasswordField.showRevealButton
) (PR #442; issue #173)UIManager.put( "ToolBar.floatable", true )
if you want the old behavior.JLabel
) when using arrow keys
to navigate in focusable buttons (if UI value ToolBar.focusableButtons
is
true
).ToolBar.focusableButtons
is true
):
Component.borderWidth
).CheckBox.icon.borderWidth
).Slider.thumbBorderWidth
).ColorFunctions
for easy use in
applications: lighten()
, darken()
, saturate()
, desaturate()
, spin()
,
tint()
, shade()
and luma()
.FlatLaf.registerCustomDefaultsSource(URL packageUrl)
for JPMS.
(issue #325)FlatDesktop
for easy integration into macOS screen menu
(About, Preferences and Quit) when using Java 8.FlatSVGIcon
: Support loading SVG from URL
(for JPMS), URI
, File
or
InputStream
. (issues #419 and #325)FlatSVGUtils
: Support loading SVG from URL
(for JPMS). (issue #325)JXTable
that scales and uses antialiasing.
(issue #434)UnsatisfiedLinkError
on Windows 11 for ARM
processors. (issue #443)NullPointerException
in FlatCaret
when using
org.jdesktop.swingx.prompt.PromptSupport.setPrompt()
on a text field and
then switching theme.-
to +
. (Windows and Linux).StackOverflowError
when modifying combo box not
on AWT thread. (issue #432)NullPointerException
when using AWT component
java.awt.Choice
. (issue #439)UnsatisfiedLinkError
in case that FlatLaf DLL cannot be executed because of restrictions on
temporary directory. Instead, continue with default window decorations. (issue
#436)DefaultListCellRenderer
is used as renderer. If using
default renderer, it works. (issue #426)JComponent.roundRect
is true
). (similar
to issue #382; regression since fixing #330 in FlatLaf 1.4)NullPointerException
, which may occur under special
circumstances. (issue #408)JTable.surrendersFocusOnKeystroke
is true
) and
TextComponent.selectAllOnFocusPolicy
is once
(the default) or always
.
(issue #395)java.awt.TrayIcon
. (issue #405)UnsatisfiedLinkError
when trying to load
jawt.dll
to avoid an application crash (Java 8 on Windows 10 only).install()
methods.ActionEvent
(e.g. Ctrl
key
pressed) when running in Java 9+ on Linux, macOS. Occurs also on Windows in
large popup menus that do not fit into the window. (issue #371; regression
since FlatLaf 1.3)OptionPane.sameSizeButtons
, which did not work as expected
when setting to false
.StringBuilder
, StringBuffer
, or any other object that returns HTML text in
method toString()
. (similar to issue #12)JXSearchField
. (issue #359)flatlaf-windows.dll
. (issue #357)JTextField.padding
to an Insets
).FlatPasswordFieldUI
now extends FlatTextFieldUI
(instead of BasicPasswordFieldUI
) to avoid duplicate code and for easier
extensibility.StackWalker
in Java 9+ for better performance.
(issue #334)ToolBar.focusableButtons
to true
). (issue #346)2,6,2,6
).1.25x
, 1.75x
and 2.25x
scaling factors (Java
8 only) so that Button, ComboBox, Spinner and TextField components (including
subclasses) have same heights. This increases heights of Button and TextField
components by:
2px
at 1.75x
in Light and Dark themes2px
at 1.25x
and 2.25x
in IntelliJ and Darcula themesJPanel
,
non-opaque. (issue #349)TextField.focusedBackground
,
PasswordField.focusedBackground
, FormattedTextField.focusedBackground
,
TextArea.focusedBackground
, TextPane.focusedBackground
,
EditorPane.focusedBackground
, ComboBox.focusedBackground
,
ComboBox.buttonFocusedBackground
, ComboBox.popupBackground
and
Spinner.focusedBackground
). (issue #335)Flat*Laf.install()
methods to Flat*Laf.setup()
to avoid confusion
with UIManager.installLookAndFeel(LookAndFeelInfo info)
. The old
Flat*Laf.install()
methods are still there, but marked as deprecated. They
will be removed in a future version.JButton.buttonType
to borderless
). (PR #276)JTable
).FlatTableHeaderUI
to new border FlatTableHeaderBorder
to improve
compatibility with custom table header implementations. (issue #228)JideTabbedPane
. (PR #306)FlatSVGIcon
improvements:
FlatSVGUtils.createWindowIconImages()
now returns a single
multi-resolution image that creates requested image sizes on demand from SVG
(only on Windows with Java 9+).NullPointerException
in
FlatPopupFactory.fixToolTipLocation()
. (issue #305)DefaultTreeCellRenderer.setBackgroundNonSelectionColor(Color)
was used.
(issue #322)getResolutionVariant(width, height)
(instead of getResolutionVariants()
) to allow creation of
requested size on demand. This also avoids creation of all resolution
variants.FlatLaf.supportsNativeWindowDecorations()
) and
to toggle window decorations of all windows
(FlatLaf.setUseNativeWindowDecorations(boolean)
).JRootPane.titleBarBackground
and JRootPane.titleBarForeground
on root pane
to a java.awt.Color
).JSplitPane.setContinuousLayout(false)
did not work. (issue #301)JRootPane.useWindowDecorations
on root pane to
false
).frame.dispose()
and then showing it again with
frame.setVisible(true)
. (issue #277)FlatTitlePane.findHorizontalGlue()
.
(issue #275)TitlePane.unifiedBackground
is true
. (issue #274)InaccessibleObjectException
when running in Java 16.JFrame
title bar with embedded menu bar (using Box.createHorizontalGlue()
). (PR
#268)UIManager.put( "TitlePane.unifiedBackground", true );
then window title bar and menu bar
use same background color as main content. (PR #268; issue #254)JideButton
, JideLabel
, JideSplitButton
,
JideToggleButton
and JideToggleSplitButton
.com.jidesoft:jide-oss:3.6.18
to avoid problems when another JIDE library
should be used. (issue #270)org.swinglabs.swingx:swingx-all:1.6.5-1
to avoid problems when another
SwingX library should be used.TabbedPane.selectedForeground
color did not work when
TabbedPane.foreground
has also custom color. (issue #257)NullPointerException
when PopupFactory.getPopup()
is
invoked with parameter owner
set to null
.<code>
, <kbd>
, <big>
, <small>
and <samp>
tags in HTML text.<address>
tag in HTML text.CheckBoxTree
. (regression
in 1.0-rc2)JTree.wideSelection
to false
). (PR #245)JTree.paintSelection
to false
).JidePopupMenu
.Button.defaultButtonFollowsFocus
on Windows (as on other
platforms). If you like to keep the old behavior in your application, use:
if(SystemInfo.isWindows) UIManager.put("Button.defaultButtonFollowsFocus",true);
.JSlider.setForeground(Color)
and JSlider.setBackground(Color)
.FlatUIDefaultsInspector.createInspectorPanel()
.*
matches any number of characters,
?
matches a single character, ^
beginning of line, $
end of line).JButton.buttonType
is
tab
) now respect explicitly set background color.IndexOutOfBoundsException
when using tooltip text on close
buttons and closing last/rightmost tab. (issue #235)com.formdev.flatlaf.extras.components
to Java 9 module descriptor.LookAndFeelFactory.installJideExtension()
when using FlatLaf UI
delegates. (issue #230)MenuItem.underlineSelectionColor
.selectionInactiveForeground
in light Arc
themes.UIManager.put( "Slider.scrollOnTrackClick", true )
to enable old behavior that scrolls the
thumb when clicking on track.UIManager.put( "Slider.snapToTicksOnReleased", true )
to enable old behavior
that snaps to ticks on mouse released.com.formdev.flatlaf.extras.components
).com.formdev.flatlaf.extras.TriStateCheckBox
to
com.formdev.flatlaf.extras.components.FlatTriStateCheckBox
. Also
changed/improved API and added javadoc.com.formdev.flatlaf.extras.SVGUtils
to com.formdev.flatlaf.extras.FlatSVGUtils
.FlatAllIJThemes.INFOS
. (issue #221)TristateCheckBox
.JSlider.inverted
is true
.-Dawt.useSystemAAFontSettings=off
), then some components still did use
antialiasing to render text (not-editable ComboBox, ProgressBar, Slider,
TabbedPane and multiline ToolTip). (issue #227)RangeSlider
. (PR #209)JTabbedPane.hideTabAreaWithOneTab
to true
)MenuBar
and MenuItem
. (PR #217; issue #216)JTabbedPane
. (issue #219)TabbedPane.tabLayoutPolicy
. E.g. invoke
UIManager.put( "TabbedPane.tabLayoutPolicy", "scroll" );
to use scroll
layout.JTabbedPane.leadingComponent
or
JTabbedPane.trailingComponent
to a java.awt.Component
) (PR #192; issue
#40)JTabbedPane.minimumTabWidth
or JTabbedPane.maximumTabWidth
to an integer)
(PR #199)JTabbedPane.tabAreaAlignment
to "leading"
, "trailing"
, "center"
or
"fill"
) (PR #199)JTabbedPane.tabAlignment
to SwingConstants.LEADING
,
SwingConstants.TRAILING
or SwingConstants.CENTER
)JTabbedPane.tabWidthMode
to "preferred"
, "equal"
or "compact"
) (PR
#199)JTabbedPane.tabIconPlacement
to SwingConstants.LEADING
,
SwingConstants.TRAILING
, SwingConstants.TOP
or SwingConstants.BOTTOM
)
(PR #199)TitlePane.borderColor
). (issue #184)FlatSVGIcon
now allows specifying icon width and height in
constructors. (issue #196)UIManager.put( "SplitPaneDivider.style", "plain" )
. (issue #179)JToolTip
components did not respect their location. (issue
#188; regression in 0.42 in fix for #164)FlatSVGIcon
icons were not painted in disabled labels and disabled
tabs. (issue #205)JTabbedPane.showContentSeparator
to false
).JTextField
as editor, default text field border is
now removed to avoid duplicate border.NullPointerException
in case that arrow buttons were removed
to create button-less spinner. (issue #181)FlatUIDefaultsInspector
added (see FlatLaf Extras). A
simple UI defaults inspector that shows a window with all UI defaults used in
current theme (look and feel).FlatLaf.registerCustomDefaultsSource(...)
methods).FlatSVGIcon
now allows specifying ClassLoader
that is used to load
SVG file. (issue #163)JComponent.roundRect
to
false
). (issue #148)Boolean
on JScrollPane
.ComboBox.maximumRowCount
to any integer to use a different value.UIManager.put( "CheckBox.icon.style", "filled" );
.Button.disabledBackground
and ToggleButton.disabledBackground
). (issue
#112)JButton.squareSize
to true
). (issue #118)ScrollBar.pressedTrackColor
, ScrollBar.pressedThumbColor
and
ScrollBar.pressedButtonBackground
). (issue #115)ComboBox.buttonStyle
to auto
(default), button
or none
). (issue #114)Spinner.buttonStyle
to button
(default) or none
).AbstractButton.isFocusPainted()
returns false
.ComboBox.maximumRowCount
to any integer to use a different value.FlatInspector
added (see FlatLaf Extras).JComponent.outline
to error
, warning
or any java.awt.Color
).JButton.buttonType
to roundRect
).JComponent.roundRect
to true
).Button.arc
, Component.arc
or TextComponent.arc
to a large value
(e.g. 1000).flatlaf-extras-<version>.jar
and
flatlaf-swingx-<version>.jar
.opaque
is no longer ignored when checkbox or
radio button is used as table cell renderer. (issue #77)columns
property is greater
than zero.UIManager.put( "MenuItem.selectionType", "underline" );
).iconTextGap
property on a menu item did increase left
and right margins. (issue #54)JMenuBar
in JInternalFrame
and macOS screen menu
bar is enabled (with -Dapple.laf.useScreenMenuBar=true
). (issue #90)flatlaf-intellij-themes-<version>.jar
.GDK_SCALE
environment variable is set or if running
on JetBrains Runtime. (issue #69)JComboBox.prototypeDisplayValue
when computing
popup width. (issue #80)UIManager.put( "defaultFont", myFont );
sun.java2d.uiScale
. (Java 8 only)flatlaf.uiScale
also for Java 9 and later..properties
files) that are located
in working directory of Demo application. Shown in the "Themes" list under
category "Current Directory".TextComponent.arc
). (issue #65)JInternalFrame
and JDesktopPane
. (issues #39 and #11)UIManager.put( "TabbedPane.tabSeparatorsFullHeight", true );
). (issue
#59, PR #62)contentAreaFilled
is
false
. (issue #58, PR #63)Button.toolbar.spacingInsets
and ToolBar.borderMargins
).
(issue #56)JMenu
, JMenuItem
, JCheckBoxMenuItem
and JRadioButtonMenuItem
non-opaque.TextComponent.selectAllOnFocusPolicy
).Re-release of 0.25 because of problems with Maven Central.
Tree.textBackground
now has a valid color and is no
longer null
.JComponent.minimumHeight
to an integer). (issue #44)FlatButtonBorder
).JButton.buttonType
is now tab
).JToggleButton.tab.underlineHeight
(integer),
JToggleButton.tab.underlineColor
(Color) and
JToggleButton.tab.selectedBackground
(Color). (issue #45)JTabbedPane.tabHeight
to an integer).JProgressBar.square
to true
) and larger height even if no string is
painted (set client property JProgressBar.largeHeight
to true
)..properties
file loading order: Now all core .properties
files are
loaded before loading addon .properties
files. This makes it easier to
overwrite core values in addons. Also, addon loading order can be specified.JButton.buttonType
to square
).JButton.buttonType
to underline
).JComponent.minimumWidth
to an integer).Table.showGrid
with Table.showHorizontalLines
and
Table.showVerticalLines
. (issue #38)controlHighlight
, controlLtHighlight
,
controlShadow
and controlDkShadow
.List.showCellFocusIndicator=true
/
Tree.showCellFocusIndicator=true
, but then the cell focus indicator is shown
only if more than one item is selected.Table.showCellFocusIndicator=true
..properties
files: rgb(red,green,blue)
,
rgba(red,green,blue,alpha)
, hsl(hue,saturation,lightness)
,
hsla(hue,saturation,lightness,alpha)
, lighten(color,amount[,options])
and
darken(color,amount[,options])
.@@
with $
in .properties
files.System.err
.ProgressBar.arc
.TabbedPane.selectedBackground
) and separators between tabs
(TabbedPane.showTabSeparators
).CheckBox.arc
from radius to diameter to be consistent with
Button.arc
and Component.arc
Button.defaultButtonFollowsFocus
on Windows, which allows
pressing focused button with Enter key (as in Windows LaF).true
on JScrollPane
or JScrollBar
.
(issue #25)FlatLaf.isNativeLookAndFeel()
now returns false
.JFileChooser
. (issue #5)FlatLaf.getID()
now always starts with
"FlatLaf". Use UIManager.getLookAndFeel().getID().startsWith( "FlatLaf" )
to
check whether the current look and feel is FlatLaf.org.openide.awt.ColorComboBox
component..properties
files now must start with a #
character.JXTitledPanel
. (issue #22)JidePopup
border.columns
property is
greater than zero.JideTabbedPane
.TriStateCheckBox
component added (see FlatLaf Extras).JComboBox
, JProgressBar
, JSpinner
and JXDatePicker
non-opaque.
JPasswordField
, JScrollPane
and JTextField
are non-opaque if they have
an outside focus border (e.g. IntelliJ and Darcula themes). (issues #20 and
#17)JButton
, JCheckBox
, JRadioButton
, JToggleButton
and JSlider
non-opaque. (issue #20)StackOverflowError
when switching LaF. (issue #14)JXBusyLabel
, JXDatePicker
, JXHeader
, JXHyperlink
,
JXMonthView
, JXTaskPaneContainer
and JXTaskPane
. (issue #8)Flat*Laf.install()
methods.apple.laf.useScreenMenuBar
is true
.com.formdev
and artifactId to flatlaf
.module-info.class
to flatlaf.jar
(in
META-INF/versions/9
). But FlatLaf remains Java 8 compatible. (issue #1)flatlaf.uiScale
or sun.java2d.uiScale
. E.g. -Dflatlaf.uiScale=1.5
. (Java 8 only)此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。