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>

但是它仍然给我同样的错误。如果这是一个愚蠢的问题,我感到抱歉。我是自己编程和学习的新手

iCMS 回答:JavaFX:FXML打开图像格式错误的URL异常协议:e

如果您打算基于文件系统中的文件(例如,由用户选择的文件)设置图像,则需要创建一个表示文件的URL。

您不应该自己尝试构造它,而应该使用Android 10.0方法,该方法可以处理协议的创建并解决无效URL的文件路径(例如,包含非法URL字符的文件名,例如空格)正确。

所以你应该做

File.toURI()
本文链接:https://www.f2er.com/1677399.html

大家都在问