如何解决JavaFX:FXML打开图像格式错误的URL异常协议:e
我正在尝试学习JavaFX,并制作一个可以显示用户表视图中的用户图像的用户列表。这是我的代码:
@FXML private ImageView image;
@FXML
public void buttonSHow(ActionEvent actionEvent) throws MalformedURLException,FileNotFoundException {
CList =TAbleview.getSelectionModel().getSelectedItems();
System.out.println(CList.get(0).getPicture());
//URL url = new URL(CList.get(0).getPicture());
//FileInputStream input = new FileInputStream (CList.get(0).getPicture());
image.setImage(new Image(CList.get(0).getPicture()));
}
我要用此代码执行的操作是使用存储在用户列表中的绝对路径为ImageView
设置Image
图像。 fxml
具有此功能:
<ImageView fx:id = "image"/>
当我尝试运行它时,它显示了MalformedURLException: unknown protocol e
的错误。我试图将网址手动打入fxml
中以查看其是否手动加载,
<ImageView>
<image>
<Image url = "@E:\test.jpg"/>
</image>
</ImageView>
但是它仍然给我同样的错误。如果这是一个愚蠢的问题,我感到抱歉。我是自己编程和学习的新手
解决方法
如果您打算基于文件系统中的文件(例如,由用户选择的文件)设置图像,则需要创建一个表示文件的URL。
您不应该自己尝试构造它,而应该使用Android 10.0
方法,该方法可以处理协议的创建并解决无效URL的文件路径(例如,包含非法URL字符的文件名,例如空格)正确。
所以你应该做
File.toURI()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。