【问题标题】:Loading an image in ImageView through code通过代码在 ImageView 中加载图像
【发布时间】:2014-02-08 12:27:13
【问题描述】:

我已经使用scenebuilder for javafx 构建了我的应用程序。我有一个表格,一个人必须上传图片。我用了这段代码

public void photoChooser(ActionEvent evt) {
    System.out.println("photoChooser method is called");
    try{
         FileChooser fileChooser= new FileChooser();
         fileChooser.setTitle("Choose a file");
         File file = fileChooser.showOpenDialog(stagehere);
         if(file != null){
             System.out.println(file);
             String img = file.toString();
             //Image image = new ImageIcon(img);           

             try{

         //    image= new Image();
             Image image = new Image(img);

             } catch (Exception e) {System.out.println("Can't upload image " + e);}


             //employeeImage.setImage(image);
             try{
            // employeeImage.setImage(image);
             } catch(Exception e){System.out.println("Can't set the image" + e);}
             employeeImage.setFitWidth(150);
             employeeImage.setFitHeight(150);
         }

我得到了这个错误 photoChooser method is called A:\images\fb\status\asd.jpg Can't upload image java.lang.IllegalArgumentException: Invalid URL: unknown protocol: a

【问题讨论】:

  • 请将 fabian 的评论标记为已接受的答案,因为它正在工作,并且是您所要求的。

标签: image imageview javafx


【解决方案1】:

Image 的构造函数需要一个 URL 而不是文件路径。因此,如果字符串中有一个“:”,那么到此为止的所有内容都被解释为协议(通常类似于httpfileftp)。

你必须换行

String img = file.toString();

String img = file.toURI().toURL().toExternalForm();

这会在转换为字符串之前从文件中获取 URL。我首先转换为 URI,因为 File.toURL 已弃用,这是建议的“解决方法”。

【讨论】:

  • 谢谢。这就是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多