仿IntelliJ Darcula的Swing主题FlatLaf使用方法

栏目: IT技术 · 发布时间: 5年前

内容简介:最近Sandeepin想写个基于Java Swing的RSS阅读器练练手,不过Swing默认主题太丑了,切成系统原生的主题也不是非常好看,正好感觉开发时用的IDEA主题很不错,不管是Light还是Darcula,都符合现代UI的设计风格。自己仿界面肯定很难仿出来,于是网上找找有没有类似风格的Swing UI库。首先找到的是Mouse0w0开源的FlatLaf官方介绍说本库是用于Java Swing桌面应用程序的现代的开源的跨平台的外观库。整个UI都是扁平化风格,支持Light、Dark、IntelliJ、D

最近Sandeepin想写个基于Java Swing的RSS阅读器练练手,不过Swing默认主题太丑了,切成系统原生的主题也不是非常好看,正好感觉开发时用的IDEA主题很不错,不管是Light还是Darcula,都符合现代UI的设计风格。自己仿界面肯定很难仿出来,于是网上找找有没有类似风格的Swing UI库。

首先找到的是Mouse0w0开源的 JavaFXDarculaTheme ,不过这是JavaFX的,先收藏吧。之后找到一个IntelliJ开发者放出的 Darcula界面库 ,试了试效果很不错,可惜只有黑色主题。最后找到的 FlatLaf 则完美了,支持Light和Darcula,还有自己配色的几种风格,于是尝试折腾一下。

FlatLaf官方介绍说本库是用于Java Swing桌面应用程序的现代的开源的跨平台的外观库。整个UI都是扁平化风格,支持Light、Dark、IntelliJ、Darcula和一些自己配色的主题,Java 8以上支持高DPI,无依赖,支持MigLayout布局,整合得挺好的。自己运行了一下官方demo,暗色主题效果和IDEA非常相近:

仿IntelliJ Darcula的Swing主题FlatLaf使用方法

使用方法很简单,首先Maven中引入依赖库:

<dependencies>
        <!-- https://mvnrepository.com/artifact/com.formdev/flatlaf -->
        <dependency>
            <groupId>com.formdev</groupId>
            <artifactId>flatlaf</artifactId>
            <version>0.26</version>
        </dependency>
</dependencies>

之后在启动JFrame之前先执行FlatLightLaf.install();即可,我用的是Light主题,如果想启动Darcula,则运行FlatDarculaLaf.install();

仿IntelliJ Darcula的Swing主题FlatLaf使用方法

包com.formdev.flatlaf下可看到多种风格均内置了install这种简单安装方法:

仿IntelliJ Darcula的Swing主题FlatLaf使用方法

官方还指出了另一种启用主题的方法,方便切换主题:

try {
    UIManager.setLookAndFeel( new FlatLightLaf() );
} catch( Exception ex ) {
    System.err.println( "Failed to initialize LaF" );
}

如果要定制化外观,可以参考官方文档: https://www.formdev.com/flatlaf/customizing/

几种常用的配置:

圆角方角:

UIManager.put( "Button.arc", 0 );

UIManager.put( "Component.arc", 0 );

箭头类型:

UIManager.put( "Component.arrowType", "chevron" );

UIManager.put( "Component.arrowType", "triangle" );

滚动条的上一个/下一个箭头按钮默认情况下是隐藏的,可以配置,宽度也可以修改:

UIManager.put( "ScrollBar.showButtons", true );

UIManager.put( "ScrollBar.width", 16 );

异想家Sandeepin还发现,甚至,FlatLaf支持IntelliJ平台主题!

搜索想要的主题: https://plugins.jetbrains.com/search?headline=0-theme&tags=Theme

下载源代码,获取.theme.json文件,拷到本地resources,使用:

IntelliJTheme.install(MyApp.class.getResourceAsStream("/com/myapp/themes/arc-theme-orange.theme.json"));

最后附上自己调用FlatLaf做的RSS阅读器的界面,功能还在开发中,做的差不多了也开源出来分享。

仿IntelliJ Darcula的Swing主题FlatLaf使用方法


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms Illuminated (Part 2)

Algorithms Illuminated (Part 2)

Tim Roughgarden / Soundlikeyourself Publishing, LLC / 2018-8-5 / USD 17.99

Algorithms are the heart and soul of computer science. Their applications range from network routing and computational genomics to public-key cryptography and machine learning. Studying algorithms can......一起来看看 《Algorithms Illuminated (Part 2)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具