2016-12-08 8 views
0

Мне было интересно, можно ли использовать Filechooser в JavaFX для поиска файла, а затем, когда я нажимаю «открывать» в Filechooser, он каким-то образом записывает путь к файлу этого файла в виде строки?Использование Filechooser в JavaFX для поиска файла, затем сохранить его путь как строку

Я искал в Интернете, как это сделать, но не видел никаких объяснений. Если кто-то может показать мне пример кода, как сделать это было бы очень признателен :)

ответ

3

FileChooser возвращает Файл:

File file = chooser.showOpenDialog(stage); 

Вы можете просто позвонить toString() на файл, чтобы получить файл как значение строки:

if (file != null) { 
    String fileAsString = file.toString(); 
    . . . 
} 

selection

Пример приложения

import javafx.application.Application; 
import javafx.geometry.*; 
import javafx.scene.Scene; 
import javafx.scene.control.*; 
import javafx.scene.layout.VBox; 
import javafx.stage.FileChooser; 
import javafx.stage.Stage; 

import java.io.File; 

public class SavePath extends Application { 

    @Override 
    public void start(final Stage stage) throws Exception { 
     Button button = new Button("Choose"); 
     Label chosen = new Label(); 
     button.setOnAction(event -> { 
      FileChooser chooser = new FileChooser(); 
      File file = chooser.showOpenDialog(stage); 
      if (file != null) { 
       String fileAsString = file.toString(); 

       chosen.setText("Chosen: " + fileAsString); 
      } else { 
       chosen.setText(null); 
      } 
     }); 

     VBox layout = new VBox(10, button, chosen); 
     layout.setMinWidth(400); 
     layout.setAlignment(Pos.CENTER); 
     layout.setPadding(new Insets(10)); 
     stage.setScene(new Scene(layout)); 
     stage.show(); 
    } 

    public static void main(String[] args) throws Exception { 
     launch(args); 
    } 
} 
+0

Как сделать обратное? Вернуть строку в файл? – KeepMove