2014-05-11 37 views
0

我試着挑選一個文件並將其讀入imageView。我正在使用java fx。將文件讀取到圖像查看

這裏是我的代碼:

public void changeImage() { 

    try { 

     FileChooser fileChooser = new FileChooser(); 
     fileChooser.setTitle("Choose Image"); 

     fileChooser.getExtensionFilters().addAll(
       new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"), 
       new ExtensionFilter("All Files", "*.*")); 
     File selectedFile = fileChooser.showOpenDialog(ScreenController.stage); 

     if (selectedFile != null) { 
      File file = selectedFile; 
      File desc = new File("/" + file.getName()); 
      FileUtils.copyFile(file, desc); 
      Image img = new Image(desc.getPath()); 
      profileImage.setImage(img); 
     } 
    } catch (Exception e) { 
     System.err.println(e); 
    } 

} 

的問題似乎是圖片IMG =新的圖片(desc.getPath());得到一個文件不存在的錯誤。但它確實是一個圖像。 //亞歷克斯

+0

什麼是文件實用程序?它是同步還是異步複製文件?另外,不要在JavaFX中使用Swing的JFileChooser;使用'javafx.stage.FileChooser'。 –

+0

它複製文件。然後我準備將新文件放入imageView中。好的,謝謝我會研究它。 – Herlix

+0

對!現在得到了JavaFX filechooser,但我的問題仍然存在。我如何在imageView中顯示我正在合作的圖像(作爲文件)? – Herlix

回答

1

構造函數Image需要URL的字符串表示形式,而不是文件系統路徑。

更換

Image img = new Image(desc.getPath()); 

Image img = new Image(desc.toURI().toURL().toExternalForm()); 
+0

謝謝!有效! =) – Herlix

+0

如果答案解決了您的問題,請接受它。 –

+0

投票答案並接受它 –