Java 如何在Sencha GXT中实现颜色选择器字段?

Java 如何在Sencha GXT中实现颜色选择器字段?,java,extjs,gxt,Java,Extjs,Gxt,颜色选择器字段下拉列表: 还需要提供在单击“更多颜色”时添加自定义颜色的功能,就像在MS Paint中一样。任何开箱即用的解决方案都是受欢迎的。就我在SenchaGXT中的检查而言,我找不到正确的实现方法。我能够通过对本机组件进行少量编辑来创建此功能。我使用了拆分按钮并在其上附加了颜色菜单,使其像一个颜色选择器 SplitButton colorPicker = new SplitButton(); final ColorMenu colorMenu = new ColorMe

颜色选择器字段下拉列表:


还需要提供在单击“更多颜色”时添加自定义颜色的功能,就像在MS Paint中一样。任何开箱即用的解决方案都是受欢迎的。就我在SenchaGXT中的检查而言,我找不到正确的实现方法。

我能够通过对本机组件进行少量编辑来创建此功能。我使用了拆分按钮并在其上附加了颜色菜单,使其像一个颜色选择器

    SplitButton colorPicker = new SplitButton();
    final ColorMenu colorMenu = new ColorMenu();

    colorMenu.getPalette().addValueChangeHandler(new ValueChangeHandler<String>(){

        public void onValueChange(ValueChangeEvent<String> event){
            String color = event.getValue();
            System.out.println("Color value is "+color);
            StyleInjector.inject(".CustomColor1 > div > div { background-color: "+color+" !important; border-color: #c4c5c5 !important;} ");
            colorMenu.hide();
        }
    });

    colorPicker.setMenu(colorMenu);
    colorPicker.setHeight(20);
    colorPicker.setWidth(150);
    StyleInjector.inject(".CustomColor1 > div {background:none !important; background-image:none !important; background-color: #FFFFFF !important; border-color: #c4c5c5 !important; border-width: 1px !important;} ");
    colorPicker.setStyleName("CustomColor1");
SplitButton colorPicker=new SplitButton();
最终颜色菜单ColorMenu=新颜色菜单();
colorMenu.getPalette().addValueChangeHandler(新的ValueChangeHandler()){
ValueChange上的公共作废(ValueChangeEvent事件){
字符串颜色=event.getValue();
System.out.println(“颜色值为”+颜色);
StyleInjector.inject(“.CustomColor1>div>div{background color:+color+”!重要;边框颜色:#c4c5c5!重要;}”);
colorMenu.hide();
}
});
设置菜单(colorMenu);
颜色选择器。设置高度(20);
颜色选择器。设置宽度(150);
StyleInjector.inject(“.CustomColor1>div{background:none!重要;背景图像:none!重要;背景颜色:#FFFFFF!重要;边框颜色:#c4c5c5!重要;边框宽度:1px!重要;}”);
colorPicker.setStyleName(“CustomColor1”);
我得到了这样的期望输出

所以,我实现了我想要的


快乐编码

谢谢你这个例子,帮了我很多忙!你为什么不接受自己的答案?