010-68421378
sales@cogitosoft.com
当前您所在的位置:首页>新闻中心>行业动态

FlatLaf - 扁平化的外观和感觉

发布时间:2022/03/16 浏览量:2487
FlatLaf 是用于 Java Swing 桌面应用程序的现代开源跨平台外观。

 

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

主题

主要主题

Flat Light/Dark 和 IntelliJ/Darcula 主题之间的差异

平光

 

扁平智能

 

平暗

 

扁Darcula

 

IntelliJ 平台主题

基于 IntelliJ 平台的产品(例如 IntelliJ IDEA 或 WebStorm)通过插件支持 3rd 方主题,这些插件在内部使用 JSON 文件(扩展名为 .theme.json)来描述 UI 主题。

FlatLaf 支持加载此类 3rd 方 .theme.json 文件并将它们用作 Laf。

 

 

FlatLaf IntelliJ 主题包

FlatLaf 的这个插件将来自 JetBrains 插件库的许多流行的开源 3rd 方主题捆绑到一个 JAR 中,并提供 Java 类来使用它们。

使用 FlatLaf Demo 试用它们。

如果您使用 Maven 或 Gradle,请将具有以下坐标的依赖项添加到您的构建脚本中:

groupId:     com.formdev

artifactId:  flatlaf-intellij-themes

version:     (see button below)

如何找到第 3 方 IntelliJ 主题?

使用 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 );

注意:始终在设置外观后调用 UIManager.put(),例如 FlatLightLaf.install() (但在创建组件之前)。 否则,系统外观是在安装 FlatLaf 之前临时安装的,这可能会导致应用程序启动变慢。

此页面仅描述了一些可用设置。 可以在此处的属性文件中找到更多信息。

常规

圆角或方角

 

默认情况下,按钮、切换按钮、组合框和微调器使用圆角。 如果您更喜欢方角,请使用:

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 );

 

 

下一篇:Devart:数据流发布、支持 Salesforce 报表和导入中的 QuickBooks 嵌套对象
上一篇: Stbsuite:Disk Manufacturing & Screening Module (DMM)

                               

 京ICP备09015132号-996网络文化经营许可证京网文[2017]4225-497号 | 违法和不良信息举报电话:4006561155

                                   © Copyright 2000-2023 北京哲想软件有限公司版权所有 | 地址:北京市海淀区西三环北路50号豪柏大厦C2座11层1105室

                         北京哲想软件集团旗下网站:哲想软件 | 哲想动画

                            华滋生物