如何从 JavaFX FileChooser 获取文件路径?
How to get file path from JavaFX FileChooser?
我有一个简单的 JavaFX window,带有供用户输入文件路径和单独浏览的 TextField link。
JavaFX Window
请问如何从 JavaFX FileChooser 中提取所选文件的完整文件路径(以便我可以在 TextField 中设置路径)?
我知道我想要实现的目标可以简单地使用 Swing JFileChooser 来完成,例如:
JFileChooser chooser = new JFileChooser();
String someString = chooser.getSelectedFile().toString();
但是由于我的应用程序是在 JavaFX 中,我希望它具有一致的外观而不是与 Swing 混合。
我查看了文档,似乎没有这种方法https://docs.oracle.com/javase/8/javafx/api/javafx/stage/FileChooser.html
提前致谢。
使用 showOpenDialog
或 showSaveDialog
(取决于您是要打开现有文件还是保存新文件)。两个 return 一个 File
对象。
这是另一个 documentation. What you get in return from using showOpenDialog is a File 对象。
public File showOpenDialog(Window ownerWindow)
Shows a new file open dialog. The method doesn't return until the
displayed open dialog is dismissed. The return value specifies the
file chosen by the user or null if no selection has been made. If the
owner window for the file dialog is set, input to all windows in the
dialog's owner chain is blocked while the file dialog is being shown.
一个文件对象有多种方法,比如e。 G。 getAbsolutePath.
在具有 TextField 的控制器 class 中,您可以创建如下方法:
public void getTheUserFilePath() {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Upload File Path");
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("ALL FILES", "*.*"),
new FileChooser.ExtensionFilter("ZIP", "*.zip"),
new FileChooser.ExtensionFilter("PDF", "*.pdf"),
new FileChooser.ExtensionFilter("TEXT", "*.txt"),
new FileChooser.ExtensionFilter("IMAGE FILES", "*.jpg", "*.png", "*.gif")
);
File file = fileChooser.showOpenDialog(dialogPane.getScene().getWindow());
if (file != null) {
// pickUpPathField it's your TextField fx:id
pickUpPathField.setText(file.getPath());
} else {
System.out.println("error"); // or something else
}
}
我有一个简单的 JavaFX window,带有供用户输入文件路径和单独浏览的 TextField link。
JavaFX Window
请问如何从 JavaFX FileChooser 中提取所选文件的完整文件路径(以便我可以在 TextField 中设置路径)?
我知道我想要实现的目标可以简单地使用 Swing JFileChooser 来完成,例如:
JFileChooser chooser = new JFileChooser();
String someString = chooser.getSelectedFile().toString();
但是由于我的应用程序是在 JavaFX 中,我希望它具有一致的外观而不是与 Swing 混合。
我查看了文档,似乎没有这种方法https://docs.oracle.com/javase/8/javafx/api/javafx/stage/FileChooser.html
提前致谢。
使用 showOpenDialog
或 showSaveDialog
(取决于您是要打开现有文件还是保存新文件)。两个 return 一个 File
对象。
这是另一个 documentation. What you get in return from using showOpenDialog is a File 对象。
public File showOpenDialog(Window ownerWindow)
Shows a new file open dialog. The method doesn't return until the displayed open dialog is dismissed. The return value specifies the file chosen by the user or null if no selection has been made. If the owner window for the file dialog is set, input to all windows in the dialog's owner chain is blocked while the file dialog is being shown.
一个文件对象有多种方法,比如e。 G。 getAbsolutePath.
在具有 TextField 的控制器 class 中,您可以创建如下方法:
public void getTheUserFilePath() {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Upload File Path");
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("ALL FILES", "*.*"),
new FileChooser.ExtensionFilter("ZIP", "*.zip"),
new FileChooser.ExtensionFilter("PDF", "*.pdf"),
new FileChooser.ExtensionFilter("TEXT", "*.txt"),
new FileChooser.ExtensionFilter("IMAGE FILES", "*.jpg", "*.png", "*.gif")
);
File file = fileChooser.showOpenDialog(dialogPane.getScene().getWindow());
if (file != null) {
// pickUpPathField it's your TextField fx:id
pickUpPathField.setText(file.getPath());
} else {
System.out.println("error"); // or something else
}
}