我的项目中的图像图标与源文件相同。从源文件我调用button.setIcon(“image.png”),或button.setIcon(“/ image.png”)或button.setIcon(“full / path / to / image.png”),但它没有显示我的形象。我的问题是:Smart Gwt如何解析图像的URL路径?我查看了文档,但目前尚不清楚。有人能帮忙吗?感谢。
答案 0 :(得分:3)
我成功使用以下程序来获取SmartGWT工作的图像。
在与GWT模块的client
包相同的级别,我创建了一个名为public
的文件夹。 (在Eclipse中,您无法创建名为public
的包,因为这不是有效的包名。您必须将其明确创建为文件夹。)名称为public
的此目录由GWT处理。 GWT编译器将所有包含的内容复制到生成的主模块目录中。所以我通常在images
下创建一个子目录public
,并将属于我的GWT模块的所有图像放在那里。
例如:
com/stuff
client
Main.java
...
public
images
a.png
b.png
mainmodule.gwt.xml
然后就在入口点的开头,我告诉SmartGWT查看图像的images
子目录(在本例中是mainmodule
我的主要GWT模块的名称):
public void onModuleLoad() {
Page.setAppImgDir("[APP]/mainmodule/images/");
...
}
路径的[APP]
部分是特殊的SmartGWT语法。
稍后我可以像这样创建一个IButton:
final IButton aBtn = new IButton("A Button");
aBtn.setIcon("a.png");
有时需要为不是SmartGWT的图像创建URL,而是为纯GWT或纯HTML创建URL。对于这些情况,您可以使用
创建URLfinal String bUrl = GWT.getModuleBaseURL() + "images/b.png";
答案 1 :(得分:2)
有时您也可以重复使用主题中的现有图标。
要使用它们,请尝试路径[SKIN]/{ComponentName}/image.png
其中{ComponentName}
是主题或标准主题中的现有文件夹之一。
示例:
node.setIcon("[SKIN]/TreeGrid/folder_open.png");
答案 2 :(得分:0)
我帮助过这种方式。
<script>
var isomorphicDir = "ModuleName/sc/";
</script>
&#13;
我的项目示例
<!--load skin-->
<script src="/ModuleName/sc/skins/Enterprise/load_skin.js"/>
&#13;