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()

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...