Skip to content

ColorSelector

自 2.2.1

ColorSelector 是一个功能完善的 HSB(色相–饱和度–亮度)颜色选择器。它继承自 BindableUIElement<Integer>,其值为所选颜色的 ARGB 压缩整数。包含以下功能:

  • HSB 渐变拾色面板,可在色相、饱和度和亮度轴之间切换。
  • 色相/透明度滑块。
  • RGB 和十六进制文本输入框,支持直接输入。
  • 颜色预览色块。
  • 剪贴板复制支持。

INFO

UIElement 中记录的所有内容(布局、样式、事件、数据绑定等)同样适用于此组件。


用法

java
var picker = new ColorSelector();
picker.setValue(0xFF4080FF, false); // 初始 ARGB 颜色
picker.registerValueListener(color -> System.out.printf("Color: #%08X%n", color));
parent.addChild(picker);

内部结构

字段描述
pickerContainer承载主 HSB 渐变面板的容器。
colorPreview显示当前所选颜色的预览色块。
colorSlider主 HSB 轴(色相、饱和度或亮度)的滑块。
alphaSlider透明度通道滑块。
hsbButton在 H、S、B 拾色模式之间循环切换的按钮。
textContainerRGB 和十六进制文本输入框的容器。
hexConfigurator用于输入十六进制颜色代码的文本输入框。

值绑定

ColorSelector 继承自 BindableUIElement<Integer>

java
picker.bind(DataBindingBuilder.intVal(
    () -> config.getColor(),
    color -> config.setColor(color)
).build());

详见 数据绑定


字段

名称类型访问修饰描述
pickerContainerUIElementpublic finalHSB 渐变画布。
colorPreviewUIElementpublic final颜色预览色块。
colorSliderUIElementpublic final主 HSB 轴滑块。
alphaSliderUIElementpublic final透明度通道滑块。
hsbButtonButtonpublic final循环切换 HSB 拾色模式(H → S → B → H)。
textContainerUIElementpublic final文本输入框容器。
hexConfiguratorStringConfiguratorpublic final十六进制颜色输入框。

方法

方法返回值描述
setValue(Integer, boolean)ColorSelector设置 ARGB 颜色值;第二个参数控制是否触发通知。
getValue()Integer返回当前 ARGB 颜色值。
registerValueListener(Consumer<Integer>)void注册颜色变化时调用的监听器。

Released under the MIT License.