Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式添加与样式相关的名称?_Java_Css_Gwt - Fatal编程技术网

Java 如何以编程方式添加与样式相关的名称?

Java 如何以编程方式添加与样式相关的名称?,java,css,gwt,Java,Css,Gwt,我正在尝试创建一个单独的按钮css类,它应该可以被ClientBundle访问。我的目标是按应用程序状态以编程方式更改按钮样式 以下应用按钮样式,但不更改背景,因此不考虑-ok相关样式名。为什么? .myButton { background: white; } .myButton-ok { background: green; } public interface MyButtonResource extends ClientBundle { public stat

我正在尝试创建一个单独的按钮css类,它应该可以被
ClientBundle
访问。我的目标是按应用程序状态以编程方式更改按钮样式

以下应用按钮样式,但不更改背景,因此不考虑
-ok
相关样式名。为什么?

.myButton {
    background: white;
}

.myButton-ok {
    background: green;
}

public interface MyButtonResource extends ClientBundle {
    public static final MyButtonResource INSTANCE = GWT.create(MyButtonResource.class);

    @Source("MyButtonResource.css")
    Style css();

    interface Style extends CssResource {
        @ClassName("myButton")
        String buttonStyle();

        @ClassName("myButton-ok")
        String buttonStyleOK();
    }
}


MyButtonResource.INSTANCE.css().ensureInjected();
setStyleName(MyButtonResource.INSTANCE.css().buttonStyle());
button.addStyleDependentName(MyButtonResource.INSTANCE.css().buttonStyleOK());

您不能使用模糊的css资源
addStyleDependentName
,请参见

问题是
addStyleDependentName
在当前样式
按钮
上附加了一个后缀
-ok
,将元素的样式设置为
按钮ok

但当模糊器动作时,在您的资源中,您将为
按钮
生成
AA
,为
按钮ok生成
AB
。因此,在将代码应用到OK状态后,您的按钮将显示
AA-AB
,它与css部分中的任何规则都不匹配

面对这一点的唯一方法是向您的小部件添加第二种样式,我会这样做:

addStyleName(MyButtonResource.INSTANCE.css().buttonStyleOK())