Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.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 如何以编程方式在文本框上设置css错误样式_Java_Css_Gwt - Fatal编程技术网

Java 如何以编程方式在文本框上设置css错误样式

Java 如何以编程方式在文本框上设置css错误样式,java,css,gwt,Java,Css,Gwt,为什么我不能将自定义css样式应用于单个文本框 我试图在单个文本框上设置一些错误样式。以下实现有什么问题 初始化: 资源接口 interface ErrorRes extends ClientBundle { static final ErrorRes INSTANCE = GWT.create(ErrorRes.class); @Source("Error.css") Style css(); interface Style extends CssResou

为什么我不能将自定义css样式应用于单个文本框

我试图在单个文本框上设置一些错误样式。以下实现有什么问题

初始化:

资源接口

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

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

    interface Style extends CssResource {
        @ClassName("gwt-TextBox-error")
        String style();
    }
}
Error.css

.gwt-TextBox-error {
     border: 1px solid red !important;
}

如果您不想在小部件上获取gwt TextBox错误样式名称,则需要设置
box.setStylePrimaryName(“gwt TextBox”)-默认情况下为。当出现错误时,使用
box.setStyleDependentName(“错误”,true)HTML将为class=“gwt TextBox gwt TextBox error”。
要清除错误样式,请使用
box.setStyleDependentName(“错误”,false)

您可以以相同的方式使用
addStyleName(“gwt TextBox error”)
removeStyleName(“gwt TextBox error”)

---更新---

所以,我试着处理你的案子,效果很好。首先,您需要在运行时将css从资源注入页面:

ErrorRes.INSTANCE.css().ensureInjected();
我在
onModuleLoad()的开头使用它

然后,要添加错误样式,请使用:
box.addStyleName(样式)
box.removeStyleName(样式)
将其删除


不能将pair
setStylePrimaryName()
setStyleDependentName()
与绑定的css一起使用,因为css名称将被混淆

我不确定这是否正确:
box.setStylePrimaryName(样式)。几个月前我在使用GWT,我还记得更新相关样式,这里为您设置的是基本样式,而不是错误样式。第二,您是否签出了生成的HTML?它可能会给你更多关于这个问题的提示。我试过你的代码,效果很好。请参阅我的更新。如果我将
“gwt TextBox error”
css类放在我的主css文件中,您的第二个选项将非常有效。但是我想要一个单独的css文件,只用于错误样式。而且,我不想将字符串文字与
addStyleName(“gwt TextBox error”)
一起使用,而是像上面写的那样从
ErrorRes.INSTANCE
获取css类名。无论如何,使用
addStyleName(STYLES)
不起作用。我的客户包有什么问题吗?
ErrorRes.INSTANCE.css().ensureInjected();