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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

Sandeepin   2020-03-14 我要评论
最近Sandeepin想写个基于Java Swing的RSS阅读器练练手,不过Swing默认主题太丑了,切成系统原生的主题也不是非常好看,正好感觉开发时用的IDEA主题很不错,不管是Light还是Darcula,都符合现代UI的设计风格。自己仿界面肯定很难仿出来,于是网上找找有没有类似风格的Swing UI库。 首先找到的是Mouse0w0开源的[JavaFXDarculaTheme](https://github.com/Mouse0w0/JavaFXDarculaTheme),不过这是JavaFX的,先收藏吧。之后找到一个IntelliJ开发者放出的[Darcula界面库](https://github.com/bulenkov/Darcula),试了试效果很不错,可惜只有黑色主题。最后找到的[FlatLaf](https://www.formdev.com/flatlaf/)则完美了,支持Light和Darcula,还有自己配色的几种风格,于是尝试折腾一下。 FlatLaf官方介绍说本库是用于Java Swing桌面应用程序的现代的开源的跨平台的外观库。整个UI都是扁平化风格,支持Light、Dark、IntelliJ、Darcula和一些自己配色的主题,Java 8以上支持高DPI,无依赖,支持MigLayout布局,整合得挺好的。自己运行了一下官方demo,暗色主题效果和IDEA非常相近: ![](https://img2020.cnblogs.com/blog/140169/202003/140169-20200314140202212-669737468.png) 使用方法很简单,首先Maven中引入依赖库: ```xml com.formdev flatlaf 0.26 ``` 之后在启动JFrame之前先执行FlatLightLaf.install();即可,我用的是Light主题,如果想启动Darcula,则运行FlatDarculaLaf.install(); ![](https://img2020.cnblogs.com/blog/140169/202003/140169-20200314140220788-2051397677.png) 包com.formdev.flatlaf下可看到多种风格均内置了install这种简单安装方法: ![](https://img2020.cnblogs.com/blog/140169/202003/140169-20200314140241107-997595764.png) 官方还指出了另一种启用主题的方法,方便切换主题: ```java 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平台主题! 搜索想要的主题:http://plugins.jetbrains.com/search?headline=0-theme&tags=Theme 下载源代码,获取.theme.json文件,拷到本地resources,使用: ```java IntelliJTheme.install(MyApp.class.getResourceAsStream("/com/myapp/themes/arc-theme-orange.theme.json")); ``` 最后附上自己调用FlatLaf做的RSS阅读器的界面,功能还在开发中,做的差不多了也开源出来分享。 ![](https://img2020.cnblogs.com/blog/140169/202003/140169-20200314140258328-1168694306.png)

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们