2016-06-21 2 views
0

Ce que je veux, c'est quand l'utilisateur choisit une image avec le sélecteur de fichier pour l'afficher à l'écran.Comment utiliser le chemin de FileChooser pour le chemin absolu de l'image?

  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); 

      } 

Quand je le fais de cette façon que je reçois Exception: java.lang.IllegalArgumentException Ce AbsolutePath du fichier chooser ne fonctionne pas. Mais si je le change

de: "G: \ stvari \ Daki Matura \ IMG_6746.JPG"

à: « file: /// G: // // stvari Daki // Matura IMG_6746.JPG "Ensuite, cela fonctionne parfaitement.

Y at-il un moyen de résoudre ce problème, donc je n'ai pas besoin d'éditer le chemin?

+0

@Tunaki réponse '.toURI() toURL().' Dans le soi-disant [double question] (http://stackoverflow.com/questions/6098472/pass- un-fichier-local-en-url-en-java) ne fonctionne pas pour 'Image'. 'Image' n'a pas de constructeur qui prend' URL' comme paramètre. – Arjan

+0

Vraiment ne pouvait pas trouver sa réponse. Je vous remercie. –

+0

Appelez simplement une méthode appropriée sur l'URL pour la convertir en la chaîne requise, c'est-à-dire 'file.toURI(). ToURL(). ToExternalForm()' (ou de manière équivalente '.toString()'). Je ne pense pas que cette étape supplémentaire en fasse une question différente. –

Répondre

0

Utilisez 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); 
    }