FlatLaf 是用于 Java Swing 桌面应用程序的现代开源跨平台外观。
它看起来几乎是平的(没有阴影或渐变)、干净、简单和优雅。 FlatLaf 带有 Light、Dark、IntelliJ 和 Darcula 主题,可在 HiDPI 显示器上缩放并在 Java 8 或更高版本上运行。
外观的灵感来自 IntelliJ IDEA 2019.2+ 的 Darcula 和 IntelliJ 主题,并使用几乎相同的颜色和图标。
要启用 FlatLaf,请在创建任何 Swing 组件之前将以下代码添加到 main 方法中:
FlatLightLaf.setup();
// create UI here...
或
try {
UIManager.setLookAndFeel( new FlatLightLaf() );
} catch( Exception ex ) {
System.err.println( "Failed to initialize LaF" );
}
// create UI here...
平光
扁平智能
平暗
扁Darcula
基于 IntelliJ 平台的产品(例如 IntelliJ IDEA 或 WebStorm)通过插件支持 3rd 方主题,这些插件在内部使用 JSON 文件(扩展名为 .theme.json)来描述 UI 主题。
FlatLaf 支持加载此类 3rd 方 .theme.json 文件并将它们用作 Laf。
FlatLaf 的这个插件将来自 JetBrains 插件库的许多流行的开源 3rd 方主题捆绑到一个 JAR 中,并提供 Java 类来使用它们。
使用 FlatLaf Demo 试用它们。
如果您使用 Maven 或 Gradle,请将具有以下坐标的依赖项添加到您的构建脚本中:
groupId: com.formdev
artifactId: flatlaf-intellij-themes
version: (see button below)
使用 FlatLaf 演示,它捆绑了来自 JetBrains 插件存储库的许多流行的开源 3rd 方主题,可以试用它们。
您还可以转到 JetBrains 插件库并在 plugins.jetbrains.com/search?tags=Theme 上浏览可用的 IntelliJ 主题插件。 如果你找到了一个好的,点击主题页面底部的“源代码”链接,它会将你重定向到主题的源代码存储库。 您可以在那里搜索 .theme.json 文件并下载它。
提示:如果您将 .theme.json 文件复制到与 FlatLaf 演示 JAR 相同的文件夹中,您可以在演示中尝试此主题。 从主题列表的“当前目录”部分选择主题。
如何使用第 3 方 IntelliJ 主题?
要在您的应用程序中使用 .theme.json 文件(该文件未包含在 FlatLaf IntelliJ 主题包中),请将其保存在应用程序的资源(或 src)文件夹中的某个位置,并使用以下代码加载和初始化它:
IntelliJTheme.setup( MyApp.class.getResourceAsStream(
"/com/myapp/themes/arc-theme-orange.theme.json" ) );
// create UI here...
您可以通过设置 UI 默认值在一定程度上自定义 FlatLaf 的外观:
UIManager.put( "someKey", someValue );
默认情况下,按钮、切换按钮、组合框和微调器使用圆角。 如果您更喜欢方角,请使用:
Java Properties
UIManager.put( "Button.arc", 0 );
UIManager.put( "Component.arc", 0 );
UIManager.put( "CheckBox.arc", 0 );
UIManager.put( "ProgressBar.arc", 0 );
Button.arc 是按钮和切换按钮的角弧直径(默认为 6),Component.arc 用于其他组件,如组合框和微调器(默认为 5),CheckBox.arc 用于复选框图标(默认为 4) ProgressBar.arc 用于进度条(默认为 4)。
默认情况下,文本字段使用方角。 如果您更喜欢圆角,请使用:
Java Properties
UIManager.put( "TextComponent.arc", 5 );
对 arc 使用大值以获得“圆形”组件:
Java Properties
UIManager.put( "Button.arc", 999 );
UIManager.put( "Component.arc", 999 );
UIManager.put( "ProgressBar.arc", 999 );
UIManager.put( "TextComponent.arc", 999 );
您还可以通过以下方式在单个组件上启用圆角:
myButton.putClientProperty( "JButton.buttonType", "roundRect" );
myComboBox.putClientProperty( "JComponent.roundRect", true );
mySpinner.putClientProperty( "JComponent.roundRect", true );
myTextField.putClientProperty( "JComponent.roundRect", true );
雪佛龙
三角形
一些组件(例如组合框、微调器、树等)使用箭头。 FlatLaf 支持两种类型的箭头:人字形和三角形。
要更改 FlatLaf 中所有箭头的箭头类型,请使用:
Java Properties
UIManager.put( "Component.arrowType", "chevron" );
or
UIManager.put( "Component.arrowType", "triangle" );
FlatLaf 中的大多数可聚焦组件(例如按钮、组合框、文本字段等)都用特殊边框表示聚焦状态。 Flat Light 和 Flat Dark 主题在现有边框上使用不同的颜色(外焦点宽度为 0)。 另一方面,Flat IntelliJ 和 Flat Darcula 主题使用宽度为 2 的外边框,这些边框绘制在组件的外部。
您可以通过以下方式控制所有主题中外部焦点边框的宽度:
Java Properties
UIManager.put( "Component.focusWidth", 1 );
注意:使用外部焦点边框会增加组件的大小。
除了外部焦点边框,FlatLaf 还支持内部焦点边框,不会增加组件的大小。 默认内部焦点宽度为 0。
您可以使用以下方法更改内部焦点宽度:
Java Properties
UIManager.put( "Component.innerFocusWidth", 1 );
默认情况下,助记符是隐藏的,按下 Alt 键时会显示。 要使助记符始终可见,请使用:
Java Properties
UIManager.put( "Component.hideMnemonics", false );
默认情况下隐藏滚动条的上一个/下一个箭头按钮。 要使它们对应用程序中的所有滚动条可见,请使用:
Java Properties
UIManager.put( "ScrollBar.showButtons", true );
或者在单个组件(JScrollPane 或 JScrollBar)上启用它们:
myScrollPane.putClientProperty( "JScrollBar.showButtons", true );
or
myScrollBar.putClientProperty( "JScrollBar.showButtons", true );
滚动条的默认宽度为 10。要使其更宽(或更小),请使用:
Java Properties
UIManager.put( "ScrollBar.width", 16 );
拇指插图在拇指周围添加空白空间:
Java Properties
UIManager.put( "ScrollBar.thumbInsets", new Insets( 2, 2, 2, 2 ) );
轨道插入在轨道周围添加空白空间:
Java Properties
UIManager.put( "ScrollBar.trackInsets", new Insets( 2, 4, 2, 4 ) );
UIManager.put( "ScrollBar.thumbInsets", new Insets( 2, 2, 2, 2 ) );
UIManager.put( "ScrollBar.track", new Color( 0xe0e0e0 ) );
注意:必须为垂直滚动条指定轨道和拇指插入。 它们为水平滚动条旋转。
拇指可以四舍五入:
Java Properties
UIManager.put( "ScrollBar.thumbArc", 3 );
UIManager.put( "ScrollBar.thumbInsets", new Insets( 2, 2, 2, 2 ) );
或圆:
Java Properties
UIManager.put( "ScrollBar.thumbArc", 999 );
UIManager.put( "ScrollBar.thumbInsets", new Insets( 2, 2, 2, 2 ) );
轨道也可以是圆形的:
Java Properties
UIManager.put( "ScrollBar.trackArc", 999 );
UIManager.put( "ScrollBar.thumbArc", 999 );
UIManager.put( "ScrollBar.trackInsets", new Insets( 2, 4, 2, 4 ) );
UIManager.put( "ScrollBar.thumbInsets", new Insets( 2, 2, 2, 2 ) );
UIManager.put( "ScrollBar.track", new Color( 0xe0e0e0 ) );
选项卡式窗格
制表符分隔符
可以在选项卡之间显示分隔线:
Java Properties
UIManager.put( "TabbedPane.showTabSeparators", true );
如果您喜欢这种外观,分隔线可以全高:
Java Properties
UIManager.put( "TabbedPane.tabSeparatorsFullHeight", true );
所选标签背景
要使所选标签脱颖而出,请更改所选标签背景:
Java Properties
UIManager.put( "TabbedPane.selectedBackground", Color.white );
京ICP备09015132号-996 | 网络文化经营许可证京网文[2017]4225-497号 | 违法和不良信息举报电话:4006561155
© Copyright 2000-2023 北京哲想软件有限公司版权所有 | 地址:北京市海淀区西三环北路50号豪柏大厦C2座11层1105室