swing-FlatLaf 自定义测试

FlatLaf详细的自定义测试介绍:

在这里插入图片描述

简介

  • Customizing: 简单的介绍了自定义前的效果和自定义后的效果
  • How to Customize: 介绍了自定义UI的三种方式
  • Properties Files: 介绍了在配置文件中自定义UI ,可以使用的方式
  • Compoents: 介绍了不同的组件可以自定义哪些UI属性
  • Client Properties: 介绍了部分组件形状的改变, 和常见的UI属性.
    如: 给你的JtextField 插入前置和后置按钮
    在这里插入图片描述

System Properties: 介绍了框架在系统中可以显示的风格
如: 你可以让标题和菜单位于一行
在这里插入图片描述

为什么需要自定义

自定义button样式 在该链接的文章, 想实现纯色 / 边框型button的时候,

  • 对基础的UI类扩展
  • 掌握画布常用的方法
  • 对基本的事件进行了解

当然上述还是需要掌握, 最拉跨的感觉就是实现一个功能代码有点多. 如果所有的组件都自定义一番,
那么你可以发布一个UI包了,
既然发现了FlatLaf, 那就把之前的代码全部重构了 ,开始实践!!!

在这里插入图片描述

实践1

文档是如此的漂亮,但是结合自身的需求,发现动手还是有那么卡顿一下, 因为文档是举一反三的,并没有更傻瓜式的测试代码, 比如在antd 上看到某段react样式,还能直接copy
在这里插入图片描述

1.配置文件

配置文件覆盖就比较简单了,建立自己的FlatLaf.properties, 填写需要覆盖的UI即可
在这里插入图片描述

2.存储配置

可以建立一个接口类, 存储所有的UI (可以少写 public static final) 看个人理解, 这个接口用途: 是全局使用颜色的选择器,那么修改配置文件的颜色,就可以修改页面了
在这里插入图片描述

3. 建立一个ButtonFactory 产出各种定制化的Button 按钮

在这里插入图片描述

4.FlatSVGIcon

同时发现了一个更感人的框架FlatSVGIcon, 再也不用为下载不同颜色的图标而发愁了, 而且可以通过代码控制图片的大小,颜色

那么你就可以实现各式各样的花式风格了
请添加图片描述

  1. 只控制style, 和写css风格差不多,但是style风格名称不是随便写的,需要详细看Compoents 介绍
        button.putClientProperty(FlatClientProperties.STYLE, "focusedBackground: #263238;borderWidth:0;background: #08f; foreground: #fff;disabledBackground: #9e9e9e;disabledText:#fff;arc:10;");

  1. 控制形状, 比如圆形, 方形, 提示风格类型, 需要详细看Client Properties
        button.putClientProperty(FlatClientProperties.BUTTON_TYPE, FlatClientProperties.BUTTON_TYPE_ROUND_RECT);

  1. 控制SVG的颜色, 我也只会最简单的filter控制 ,比如在开关面板上, 当按钮按下 和弹起的时候,使用不同的颜色图标
       button.putClientProperty(FlatClientProperties.STYLE, style);
        if (icon != null) {
            icon.setColorFilter(new FlatSVGIcon.ColorFilter(c -> {
                if (button.isSelected()) {
                    return CoreFlatLaf.ThemeColor.taskPaneSelect;
                } else {
                    return CoreFlatLaf.ThemeColor.whiteColor;
                }
            }));
        }

然后你就可以进阶修改自己的菜单风格

— 建议动手之前, 一定要去阅读BasicTaskPaneUI 的源码,然后再去实现
请添加图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值