关于 smartgwt setIcon(String url) 的问题

发布于 2024-10-03 19:52:14 字数 206 浏览 2 评论 0原文

我的项目中与源文件位于同一目录中的图像图标。从源文件中,我调用button.setIcon(“image.png”),或button.setIcon(“/image.png”)或button.setIcon(“full/path/to/image.png”),但它不显示我的图像。我的问题是:Smart Gwt 如何解析图像的 url 路径?我查看了文档,这还不清楚。谁能帮忙解决这个问题吗?谢谢。

I have image icons in the same directory in my project as the source file. From the source file I call button.setIcon("image.png"), or button.setIcon("/image.png") or button.setIcon("full/path/to/image.png") but it does not display my image. My question is: how does Smart Gwt resolve url paths for images? I've looked at the documentation and this is not clear. Can anyone help with this? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

古镇旧梦 2024-10-10 19:52:14

我成功地使用以下过程来获取 SmartGWT 工作的图像。

在与 GWT 模块的 client 包相同的级别上,我创建了一个名为 public 的文件夹。 (在 Eclipse 中,您无法创建名为 public 的包,因为这不是有效的包名称。您必须将其显式创建为文件夹。)名为 public 的目录是经 GWT 特殊处理。 GWT 编译器将所有包含的内容复制到生成的主模块目录中。因此,我通常在 public 下创建一个子目录 images 并将属于我的 GWT 模块的所有图像放在那里。

例如:

com/stuff
    client
        Main.java
        ...
    public
        images
            a.png
            b.png
    mainmodule.gwt.xml

然后在入口点的开头,我告诉 SmartGWT 查看图像的 images 子目录(在本例中是 mainmodule 我的主 GWT 的名称) module):

public void onModuleLoad() {
    Page.setAppImgDir("[APP]/mainmodule/images/");
    ...
}

路径的 [APP] 部分是特殊的 SmartGWT 语法。

后来我可以像这样创建一个 IButton:

final IButton aBtn = new IButton("A Button");
aBtn.setIcon("a.png");

有时需要创建图像的 URL,不是为 SmartGWT,而是为纯 GWT 或纯 HTML。对于这些情况,您可以使用以下命令创建 URL

final String bUrl = GWT.getModuleBaseURL() + "images/b.png";

I use successfully the following procedure to get images with SmartGWT working.

At the same level as the client package of your GWT module I create a folder named public. (In Eclipse you cannot create a package named public because this is not a valid package name. You have to create it explicitly as a folder.) This directory with name public is treated special by GWT. The GWT compiler copies all the included content to the resulting main module directory. So I usually create a subdirectory images under public and put all the images belonging to my GWT module in there.

For example:

com/stuff
    client
        Main.java
        ...
    public
        images
            a.png
            b.png
    mainmodule.gwt.xml

Then right at the beginning of the entry point I tell SmartGWT to look at the images subdirectory for the images (in this example is mainmodule the name of my main GWT module):

public void onModuleLoad() {
    Page.setAppImgDir("[APP]/mainmodule/images/");
    ...
}

The [APP] part of the path is special SmartGWT syntax.

Later I am able to create an IButton like so:

final IButton aBtn = new IButton("A Button");
aBtn.setIcon("a.png");

Sometimes it is necessary to create the URL to an image not for SmartGWT but for plain GWT or plain HTML. For these cases you can create the URL with

final String bUrl = GWT.getModuleBaseURL() + "images/b.png";
咽泪装欢 2024-10-10 19:52:14

有时您还可以重复使用主题中的现有图标。
要使用它们,请尝试路径 [SKIN]/{ComponentName}/image.png
其中 {ComponentName} 是主题或标准主题中的现有文件夹之一。

例子:

node.setIcon("[SKIN]/TreeGrid/folder_open.png");

Sometimes you can also reuse existing icons from theme.
To use them try path [SKIN]/{ComponentName}/image.png
where {ComponentName} is one of existing folders in your theme or standard theme.

example:

node.setIcon("[SKIN]/TreeGrid/folder_open.png");
坚持沉默 2024-10-10 19:52:14

我已经这样帮忙了。

  1. 尝试编译您的项目。
  2. 找到你的项目WAR中的文件夹:load-skin.js
  3. 将ModuleName.html中的路径添加到其中:
<script>
     var isomorphicDir = "ModuleName/sc/";
</script>

以我的项目为例

<!--load skin-->
<script src="/ModuleName/sc/skins/Enterprise/load_skin.js"/>

I have helped this way.

  1. Try to compile your project.
  2. Find the folder in your project WAR: load-skin.js
  3. Add the path in ModuleName.html to it after:

<script>
     var isomorphicDir = "ModuleName/sc/";
</script>

For Example for my Project

<!--load skin-->
<script src="/ModuleName/sc/skins/Enterprise/load_skin.js"/>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文