GWT getUrl不返回图像

时间:2012-03-24 22:26:10

标签: gwt

我的war文件夹中有一张图片。我试图看看图像是什么,但我无法让它工作。我正在尝试使用GWT.getModuleBaseURL(),但它没有提醒。

if(soundImage.getUrl().equals(GWT.getModuleBaseURL()+"/soundOn.png")){
                    Window.alert("YEP IT DOES");
                    soundImage.setUrl("soundOff.png");
                    setSound("off");
                }else{
                    soundImage.setUrl("soundOn.png");
                    setSound("on");
                }

我如何获得图像?我在代码中忽略了什么,或者我做错了吗?

2 个答案:

答案 0 :(得分:1)

如果您有HTML背景,那么更改图像的URL以便更改视图是可以理解的,但在GWT-land中有点疯狂。这大致类似于在运行中更改<script>的URL - 这在技术上是可行的,但很奇怪。这个图像必然是某个组件的子项。我会通过操作包含此图像的组件来替换此图像,而不是通过更改其URL来更改图像本身。图像的URL本质上是它的描述符,因此更改像这样的属性是很尴尬的。如果您正在使用MVP并创建了View,那么您可能会公开类似void toggleSoundImage(boolean on)的方法。

你真的应该这样做:https://developers.google.com/web-toolkit/doc/latest/DevGuideUiImageBundles。你试图使用图像的方式是单一的 - 有些人可能称之为“错误”。

我故意没有回答你的问题,因为如果你正确地这样做了,导致这个问题的先决条件将不存在。

希望有所帮助。

答案 1 :(得分:0)

请注意,您正在使用相对路径设置网址(soundOn.jpg),但是您正在使用模块绝对路径进行检查。

网址应与图片上的src属性相同。

如果您使用:

if(soundImage.getUrl().equals("soundOn.png")){

它应该工作。我建议使用Travis对Image资源的推荐。