我是第一次使用GWT ClientBundle。我写了扩展它的接口(interface),下面是代码:

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();
}

我的问题是:如何确定这些资源(在本例中为图像)的确切位置。我应该把它们:
a)与接口(interface)位于同一目录-(难看)?
b)在某些永远无法更改的特定目录中?
c)在我想要的目录中,但是应该有机制来指定它-(会很棒)吗?

谢谢。

最佳答案

我通常会创建一个新的资源包(com.example.project.resource),然后将ClientBundle接口(interface)和适当的资源放在那里(一起,放在一个目录中)-它是一个Java文件加上一堆图像,不需要进一步分离,恕我直言。

至于资源的路径-您可以通过@Source("path")批注传递它们。例如,如果您在ClientBundle中有com.example.project.resource接口(interface),在com.example.project.images中有图像,则可以编写@Source("../images/shim.gif")。您可能使用了绝对路径,但是请确保将它们存储在静态变量中并在资源之间共享,以便可以轻松地覆盖它;)

09-25 21:29