2017-08-09 37 views
-1

我需要编写一个程序在javafx场景中显示图片,并使用ImageView来显示它。但是我遇到了一个问题。java.lang.IllegalArgumentException:无效的URL:未知的协议:f

异常在线程 “主” java.lang.IllegalArgumentException异常:无效的URL:未知协议:java.net.MalformedURLException::F 致未知协议:F

这是我的代码:

public void initialize(){ 
    label1.setText("success"); 
    imageView1.setImage(new Image("F:/a.jpg")); 
} 
+4

使用'文件:的文件 –

+0

@JigarJoshi这应该是一个答案,不评论//'URL方案。请拒绝在评论中提供正确,完整答案的诱惑。 –

回答

0

尝试任何代码块。我希望它能解决你的错误。

final imageView1 imv = new imageView1(); 
     final Image image2 = new Image(Main.class.getResourceAsStream("a.jpg")); 
     imv.setImage(image2); 

@FXML 
    private ImageView1 imageView; 

    @Override 
    public void initialize(URL location, ResourceBundle resources) { 
     File file = new File("F:/a.jpg"); 
     Image image = new Image(file.toURI().toString()); 
     imageView.setImage(image); 
    } 

或者

FileInputStream input = new FileInputStream("F:/a.jpg"); 
Image image = new Image(input); 
ImageView1 imageView = new ImageView1(image); 
+0

我用第二种方法解决了这个错误,谢谢! –

+0

除非图像文件被移动到与'Main'相同的包中,否则第一个将不起作用。 – EJP

0

文件名不是URL。一个URL是一个URL。该网址应为"file:/F:/a.jpg"