我在使用CssResource时遇到了奇怪的NPE。 我在我的css文件中定义了以下两个css类:
.mainPanelStyle
{
height: 250px;
width: 250px;
background-color: gray;
cursor: pointer;
}
.titleLabelStyle
{
font-size: 14px;
font-family: Segoe UI Semibold;
color: white;
}
然后,我将界面定义为:
public interface HomePanelCssResource
extends CssResource
{
String mainPanelStyle();
String titleLabelStyle();
}
并在ClientBundle类中添加了一个条目:
@Source( "com/myapp/homePanel/css/homePanelDefault.css" )
HomePanelCssResource getHomePanelStyle();
当我在类文件中使用此CSS资源时,调用cssResource.mainPanelStyle()
可以正常工作。但是调用cssResource.titleLabelStyle()
会引发NPE。它说“你忘了添加所需的依赖吗?”。
我不知道出了什么问题。你能帮我解决这个问题吗?
答案 0 :(得分:3)
我不知道你的错误来自哪里,但这可能对你有帮助......
这就是我定义和访问CssResource的方式:
我的主要课程: 它定义了客户端包和Cssresource名称。
interface MyClientBundler extends ClientBundle {
public static final MyClientBundler INSTANCE = GWT.create(MyClientBundler.class);
//my.css and the whole packege path are allowed
@Source("stefank/client/my.css")
public MyResources css();
}
interface MyResources extends CssResource {
String test();
}
public void onModuleLoad() {
Label l = new Label("Resource Test");
MyClientBundler.INSTANCE.css().ensureInjected(); //importaten, else the resource might not be loaded jet
l.addStyleName(MyClientBundler.INSTANCE.css().test());
RootPanel.get().add(l);
}
我的css资源(与主类相同的包装内容):
.test {
background-color: blue;
height: 50px;
width: 100px;
}
这使我的标签具有正确的尺寸和正确的背景颜色。
链接: CssResource