如何在GWT中使用ClientBundle?

aze*_*pdx 21 java gwt clientbundle

我是第一次使用GWT ClientBundle.我写了扩展它的接口,这里是代码:

package edu.etf.fuzzy.client.login;

import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;

public interface Resources extends ClientBundle {

 @Source("logo_federacija.jpg")
 ImageResource logo();

 @Source("shim.gif")
 ImageResource shim();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:我如何确定这些资源(在这种情况下是图像)的确切位置.我应该把它们放在:a)与接口相同的目录 - (丑陋)?b)在一些永远无法改变的特定目录中?c)在我想要的目录中,但是应该有指定它的机制 - (会很棒)?

谢谢.

Igo*_*mer 24

我通常为resources(com.example.project.resource)创建一个新包,并将 ClientBundle接口和相应的资源放在一起(如同在一个目录中一样) - 它是一个java文件加上一堆图像,不需要进一步分离,恕我直言.

至于资源的路径 - 您可以通过@Source("path")注释传递它们.例如,如果你有你的ClientBundle界面com.example.project.resource和图像com.example.project.images,那么你就写@Source("../images/shim.gif").您可以使用绝对路径,但请确保将它们存储在静态变量中并在资源之间共享,因此可以轻松覆盖;)