【发布时间】:2012-08-30 14:26:03
【问题描述】:
我正在尝试动态设置我拥有的 img 标签的 src。以下代码在从 eclipse 运行时有效,但在将其导出为运行 jar 文件后无效:
doc.getElementById("user-thumb").setAttribute("src", selectedVcard.getThumb().getFilePath());
“user-thumb”id 得到的元素是一张图片。返回的 thumb 对象是一个简单的自定义 ImageView,我已对其进行了扩展以保存更多信息,并使用以下方法进行初始化:
public Thumb(String url) {
super(url);
this.setFilePath(url);
getStyleClass().add("thumb");
}
getFilePath() 方法返回一个临时文件的路径,该路径以以下开头:
file:/
但我已经尝试将其更改为
file://
甚至:
file:///
并没有成功。我在这里用谷歌搜索过,但每个答案都以 file:// 开头。我的代码有问题还是 javafx 2 有问题?顺便说一句,我使用的是 javafx 2.2 GA 和 oracle 的 jre 1.7.0.6。干杯
【问题讨论】:
-
这张图片是否在罐子里?
-
不,它是通过套接字传递的文件,并作为临时文件存储在用户(客户端)机器中。请注意,在我的 Thumb (ImageView) 中图像显示完美,如果我在另一个窗口中使用 ContextMenuItem Show Image,WebView 甚至会显示图像,它只是不会显示它。它开始看起来像一个错误
-
我猜你是作为点击运行jar而不是webstart或applet运行的? (否则安全限制可能会导致这种行为)。我还猜想无法从源文档的相对路径加载图像? (否则您可以使用相对路径来解决此问题)。
-
我尝试先作为点击运行,然后意识到它可能会产生这种安全限制,所以即使在 Windows 7 下我也在使用控制台。这是一个跨平台应用程序,服务器位于Unix 环境和客户端在 Linux、MacOsX 和 Windows 上工作。我不能使用相对路径,因为它是一个临时文件,这意味着它具有系统提供的路径。
-
[这里][1] 有更好更简单的解决方案。 [1]:stackoverflow.com/questions/8923801/…