我的工作站正在运行Windows,我们开发在Windows上运行的Java应用程序。在这些Windows桌面上,我们可以访问我们的共享网络驱动器。所以我需要从网络驱动器加载图像,但它不起作用。我做错了吗?
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
public class LoadImage {
public static void main(String[] args) {
try {
Image image = Toolkit.getDefaultToolkit().getImage("\\\\networkdive\\folderonnetwork\\image.jpg");
JOptionPane.showMessageDialog(null, "", "", JOptionPane.INFORMATION_MESSAGE, new ImageIcon(image));
} catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:2)
如果您遇到严重的网络延迟,可以将加载推迟到SwingWorker
的实例,如此example所示。
请注意,该示例使用的是ImageIO.read()
而不是Toolkit#getImage()
,“可能仍然包含先前调用后从文件加载的陈旧信息。”
答案 1 :(得分:2)
我认为Samba / CIFS路径不是有效的URL或本地文件。请改为查看JCIFS。
答案 2 :(得分:0)
我遇到了同样的问题,通过Google发现了这个问题。我使用"文件解决了这个问题:\\\\"在桑巴网址之前。