2016-06-21 219 views
0

我想要的是當用戶用File Chooser選擇一個圖像在屏幕上顯示它。如何使用FileChooser的路徑獲取圖像的絕對路徑?

  FileChooser fc = new FileChooser(); 
      File selectedFile = fc.showOpenDialog(null); 

      if(selectedFile != null) 
      { 
       // Absolute path from file is: G:\Stvari\Daki Matura\IMG_6746.JPG 
       Image img = new Image(selectedFile.getAbsolutePath()); 
       iv.setImage(img); 

      } 

當我這樣做,我得到異常:java.lang.IllegalArgumentException異常 這absolutepath從文件選擇器不工作。但是,如果我把它

改變從 「G:\ Stvari \ Daki會考成績單\ IMG_6746.JPG」

到:「文件:/// G:// // Stvari Daki馬圖拉// IMG_6746.JPG 「然後它完成。

有什麼辦法解決這個問題,所以我不需要編輯路徑?

+0

@Tunaki回答'.toURI()的toURL();'在所謂的[重複問題(http://stackoverflow.com/questions/6098472/pass- '本地文件到URL-in-java)不適用於'Image'。 'Image'沒有一個以'URL'作爲參數的構造函數。 – Arjan

+0

真的找不到他的答案。謝謝。 –

+0

只需在URL上調用適當的方法將其轉換爲所需的字符串,即'file.toURI()。toURL()。toExternalForm()'(或等同於'.toString()')。我不認爲這額外的步驟使得它成爲一個不同的問題。 –

回答

0

使用File.toURI().toString()

FileChooser fc = new FileChooser(); 
    File selectedFile = fc.showOpenDialog(null); 

    if (selectedFile != null) { 
     Image img = new Image(selectedFile.toURI().toString()); 
     iv.setImage(img); 
    }