【发布时间】:2020-12-15 05:09:40
【问题描述】:
我正在尝试学习 JavaFX 并制作一个可以从用户 tableview 显示用户图像的用户列表。这是我的代码:
@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()));
}
我正在尝试使用此代码执行的操作是使用存储在用户列表中的绝对路径设置带有Image 的ImageView 图像。 fxml 有这个:
<ImageView fx:id = "image"/>
当我尝试运行它时,它给了我MalformedURLException: unknown protocol e 的错误。我试图手动将 url 打入 fxml 以查看它是否手动加载,
<ImageView>
<image>
<Image url = "@E:\test.jpg"/>
</image>
</ImageView>
但它仍然给我同样的错误。
【问题讨论】:
-
E:\test.jpg不是有效的相对(或绝对)URL。如果您想硬编码一个绝对文件 URL 以进行测试,请使用(我认为)url = “file://E:/test.jpg”。 -
请使用java命名约定
-
@James_D 谢谢你,我已经尝试过你的建议,它没有给我错误,但是加载时间需要更长的时间,并且图像仍然没有显示
-
@kleopatra 你好,我正在自学,对去哪里知之甚少,我还不知道 java 命名约定,现在我会研究一下。感谢您的评论。
-
对不起;很久没有使用Windows了(“升级”到Vista后大约10分钟,我买了一台Mac ...)。在
file:之后需要三个/(两个将协议file:与主机名分隔,可以为空,一个将(空)主机名与文件路径分隔开)。 IE。url = "file:///E:/test.jpg"。见en.wikipedia.org/wiki/File_URI_scheme。当然,就像在生产环境中那样,将图像包含在应用程序中几乎更容易。见stackoverflow.com/questions/61531317/…
标签: java javafx tableview fxml