2016-06-21 12 views
0

Was ich will ist, wenn Benutzer ein Bild mit Dateiauswahl wählen, um es auf dem Bildschirm anzuzeigen.Wie verwende ich den Pfad von FileChooser für den absoluten Pfad des Bildes?

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

      } 

Wenn ich es auf diese Weise erhalte ich Ausnahme: java.lang.IllegalArgumentException Diese AbsolutePath von Dateiauswahl nicht funktioniert. Aber wenn ich es ändern

aus: "G: \ stvari \ Daki Maturitäts \ IMG_6746.JPG"

zu: „file: /// G: // stvari // Daki Maturitäts // IMG_6746.JPG "Dann funktioniert es perfekt.

Gibt es eine Möglichkeit, dieses Problem zu lösen, damit ich Pfad nicht bearbeiten muss?

+0

@Tunaki Antwort '.toURI() tourl (.),' In der so genannten [doppelten Frage] (http://stackoverflow.com/questions/6098472/pass- a-lokale-Datei-in-URL-in-Java) funktioniert nicht für 'Image'. 'Image' hat keinen Konstruktor, der' URL' als Parameter verwendet. – Arjan

+0

Wirklich konnte seine Antwort nicht finden. Vielen Dank. –

+0

Rufen Sie einfach eine geeignete Methode für die URL auf, um sie in die erforderliche Zeichenfolge zu konvertieren, d. H. 'File.toURI(). ToURL(). ToExternalForm()' (oder äquivalent '.toString()'). Ich denke nicht, dass dieser zusätzliche Schritt eine andere Frage aufwirft. –

Antwort

0

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