2014-09-03 29 views
1

我想在imageview上設置圖像,從filechooser中選擇文件我使用了imageView.setImage(文件),它會提示錯誤「文件無法轉換爲圖像」如何在imageview上設置文件(圖片)

這裏是我的代碼:

@FXML 
private AnchorPane mainAnchorpane; 
@FXML 
private ImageView iconimageview; 
private File iconimage; 

@FXML 
public void iconimagebuttonAction(ActionEvent event) { 
    FileChooser filechooser = new FileChooser(); 
    iconimage = filechooser.showOpenDialog(mainAnchorpane.getScene().getWindow()); 
    System.out.println(iconimage.getName()); 
    if (iconimage != null) { 
     String iconimagepath = iconimage.getAbsolutePath(); 
     System.out.println(iconimagepath); 
     iconimageview.setImage(iconimage); 
    } 

} 

回答

1

不能直接設置pathsetImage()。不存在接受文件路徑作爲參數的ImageView的方法。

雖然你可以使用的ImageView的,它接受一個URL作爲參數

ImageView imageView = new ImageView(filepath) 

或構造,使用filepath創建Image對象,然後將其分配到的ImageView

imageView.setImage(new Image(filepath)); 
達到同樣的
+0

我使用ImageView的構造函數來添加image.But我得到這個錯誤「由於:java.lang.IllegalArgumentException:無效的URL:未知的協議:c \t at javafx.scene.image.Image.validateUrl(Image.java :1097) \t at javafx.scene.image.Image。 (Image.java:598) \t at javafx.scene.image.ImageView。 (ImageView.java:164) \t at fileshare_client.fx.pkg1.UploadappUI_1Controller.iconimagebuttonAction(UploadappUI_1Controller.java:355)「java:355 which is」imageview = new ImageView(iconimage.getAbsolutePath());「 – 2014-09-03 13:33:59

+0

因爲它是因爲你需要用'file:'附加絕對路徑:' – ItachiUchiha 2014-09-03 14:03:18

+0

這可能會有幫助:[設置Image javafx時運行時錯誤IllegalArgumentException](http://stackoverflow.com/questions/25646263/runtime-error-illegalargumentexception-when-setting-圖像的JavaFX) – 2014-09-03 14:06:09