我的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");
}
我如何获得图像?我在代码中忽略了什么,或者我做错了吗?
答案 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资源的推荐。