问题描述
我正在尝试学习JavaFX,并制作一个可以显示用户表视图中的用户图像的用户列表。这是我的代码:
@H_404_3@@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())); }
我要用此代码执行的操作是使用存储在用户列表中的绝对路径为@H_404_3@ImageView设置@H_404_3@Image图像。 @H_404_3@fxml具有此功能:
@H_404_3@<ImageView fx:id = "image"/>
当我尝试运行它时,它显示了@H_404_3@MalformedURLException: unkNown protocol e的错误。我试图将网址手动打入@H_404_3@fxml中以查看其是否手动加载,
@H_404_3@<ImageView> <image> <Image url = "@E:\test.jpg"/> </image> </ImageView>
但是它仍然给我同样的错误。如果这是一个愚蠢的问题,我感到抱歉。我是自己编程和学习的新手
解决方法
如果您打算基于文件系统中的文件(例如,由用户选择的文件)设置图像,则需要创建一个表示文件的URL。
您不应该自己尝试构造它,而应该使用Android 10.0
方法,该方法可以处理协议的创建并解决无效URL的文件路径(例如,包含非法URL字符的文件名,例如空格)正确。
所以你应该做
File.toURI()