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