Java 仿 IntelliJ IDEA idea的 UI 框架 flatlaf——《我的Java打怪日记》

简介: 使用JAVA写界面一直是一个麻烦事,作为一个前端,在写前端页面的时候有不少的UI库可以使用。于是聪明机智的我,就想到也许JAVA上也许会有一个类似的UI库,可以直接引入调用。而作为一个软件,我本人一直欣赏intelliJ编译器的界面,所以就去狠狠的搜索了一下有没有仿照它做出来的UI库。 结果显而易见,是有的!一款叫做 FlatLaf 的 UI 库就是仿照intelliJ编译器做出来的UI库,大家可以通过MAVEN直接引用它,放到自己的软件中去。

前言

众所周知,JAVA这门语言,深受不少程序员小伙伴的喜爱。当然世界上最好的语言还是PHP。好的,不说废话,让我们直接进入正题。不少使用Java编程语言的小伙伴,会使用IntelliJ IDEA这款编译器。而这款编译器的界面也非常的有科技感。不少小伙伴也许撇下eclipse的原因就是被intelliJ的颜值给吸引到了。当然我个人也非常的喜欢IntelliJ的界面。

正题

使用JAVA写界面一直是一个麻烦事,作为一个前端,在写前端页面的时候有不少的UI库可以使用。于是聪明机智的我,就想到也许JAVA上也许会有一个类似的UI库,可以直接引入调用。而作为一个软件,我本人一直欣赏intelliJ编译器的界面,所以就去狠狠的搜索了一下有没有仿照它做出来的UI库。
结果显而易见,是有的!一款叫做 FlatLaf 的 UI 库就是仿照intelliJ编译器做出来的UI库,大家可以通过MAVEN直接引用它,放到自己的软件中去。

FlatLaf 是个什么库?

首先放一下它的官网:https://www.formdev.com/flatlaf/
然后它的全称就是 Flat Look and Feel ,平面(flat)的外观和感觉。
官方文档是这么介绍的:

FlatLaf is a modern open-source cross-platform Look and Feel for Java Swing desktop applications.
It looks almost flat (no shadows or gradients), clean, simple and elegant. FlatLaf comes with Light, Dark,IntelliJ and Darcula themes, scales on HiDPI displays and runs on Java 8 or newer.
The look is heavily inspired by Darcula and IntelliJ themes from IntelliJ IDEA 2019.2+ and uses almost the same colors and icons.

我给大家翻译下:

FlatLaf 是一款现代的开源跨平台的为JAVA Swing桌面应用开发的 东西。它看起来基本是平的(没有阴影或渐变)、干净、简单、优雅。FlatLaf 带有 亮色、黑色、IntelliJ、德古拉 主题,在 HiDPI 显示器上缩放,在 Java 8 或更新版本上运行。外观非常受到 IntelliJ IDEA 2019.2+版本自身 及其Darcula 主题启发,基本上使用相同颜色和图标。

如果把它用在自己的项目中?

很简单的在 pom.xml 中添加以下代码就可以使用了。

        <dependency>
            <groupId>com.formdev</groupId>
            <artifactId>flatlaf</artifactId>
            <version>1.0</version>
        </dependency>

如果想切换IntelliJ主题还可以添加以下包

        <dependency>
            <groupId>com.formdev</groupId>
            <artifactId>flatlaf-intellij-themes</artifactId>
            <version>1.0</version>
        </dependency>

如何启动

以下是我写的一个 Starter.java 可以将此UI应用到程序中。

import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.FlatLightLaf;
import com.formdev.flatlaf.intellijthemes.FlatDarkFlatIJTheme;

import javax.swing.*;

public class Starter {
    public static void main(String[] args){

        FlatLightLaf.install();
        FlatDarkFlatIJTheme.install();

        MainWindow frame = new MainWindow();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);

    }
}

代码解释:
需要 Import 相关的库,然后使用 FlatLightLaf.install(); FlatDarkFlatIJTheme.install(); 两句代码让样式库生效。这两句是重点。

享受新的样式

通过以上的方式,就可以将这个UI库应用到自己的程序中了。如果大家对这个UI库有更多的想要探索的地方,它也是一个开源的程序,可以在GITHUB上面来查看。额外的,也可以下载它的DEMO程序来查看它的样式使用起来是什么效果的。在这里我贴上网址 :https://github.com/JFormDesigner/FlatLaf
它也不单单只有亮色和黑色,还有其他很多颜色,比如紫色之类的,可以自定义的程度还是非常高的。可以引入它不同的主题的包来更换。十分方便。

感谢各位小伙伴浏览此教程!

相关文章
|
17天前
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
66 6
|
17天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
|
22天前
|
Rust JavaScript 前端开发
ES6 awaitRust UI 框架
ES6 awaitRust UI 框架
|
22天前
|
前端开发 JavaScript
electron ui框架
Electron是一个使用JavaScript, HTML和CSS等前端技术构建跨平台桌面应用程序的框架。
62 0
|
20天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
63 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
26天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
26天前
|
消息中间件 Java 数据库连接
Java 反射最全详解 ,框架设计必掌握!
本文详细解析Java反射机制,包括反射的概念、用途、实现原理及应用场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Java 反射最全详解 ,框架设计必掌握!
|
1月前
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
91 8
|
2月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
28天前
|
缓存 Java 数据库连接
Hibernate:Java持久层框架的高效应用
通过上述步骤,可以在Java项目中高效应用Hibernate框架,实现对关系数据库的透明持久化管理。Hibernate提供的强大功能和灵活配置,使得开发者能够专注于业务逻辑的实现,而不必过多关注底层数据库操作。
13 1