JavaFX FileChooser
JavaFX FileChooser类(javafx.stage.FileChooser
)是一个对话框,使用户可以通过文件浏览器从本地计算机中选择一个或者多个文件。 JavaFX FileChooser在类javafx.stage.FileChooser中实现。在本JavaFXFileChooser
教程中,我将向我们展示如何使用JavaFXFileChooser
对话框。
这是JavaFXFileChooser
外观的示例屏幕截图:
创建一个FileChooser
为了使用JavaFX的FileChooser对话框,我们必须首先创建一个FileChooser实例。这是创建JavaFXFileChooser
对话框的示例:
FileChooser fileChooser = new FileChooser();
如我们所见,创建FileChooser
实例非常容易。
显示FileChooser对话框
通过调用JavaFX的showOpenDialog()方法来显示JavaFX的FileChooser对话框。这是显示" FileChooser"对话框的示例:
File selectedFile = fileChooser.showOpenDialog(stage);
showOpenDialog()方法返回的File是用户在FileChooser中选择的文件。
" stage"参数是应该"拥有"" FileChooser"对话框的JavaFX" Stage"。 "拥有"是指从中显示"文件选择器"对话框的"阶段"。通常是按钮位于其中的"阶段",开始显示" FileChooser"。
显示" FileChooser"通常是由于单击按钮或者菜单项而完成的。这是一个完整的JavaFX示例,其中显示了一个按钮,当单击该按钮时会打开一个" FileChooser":
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.VBox; import javafx.stage.FileChooser; import javafx.stage.Stage; public class FileChooserExample extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("JavaFX App"); FileChooser fileChooser = new FileChooser(); Button button = new Button("Select File"); button.setOnAction(e -> { File selectedFile = fileChooser.showOpenDialog(primaryStage); }); VBox vBox = new VBox(button); Scene scene = new Scene(vBox, 960, 600); primaryStage.setScene(scene); primaryStage.show(); } }
这个例子创建了一个带有按钮的完整JavaFX应用程序,单击该按钮将打开一个FileChooser。注意如何将JavaFX应用程序的主要Stage
作为参数传递给FileChooser`showOpenDialog()方法。
设置初始目录
我们可以通过它的setInitialDirectory()方法设置显示在JavaFX FileChooser中的初始目录。这是设置" FileChooser"对话框的初始目录的示例:
fileChooser.setInitialDirectory(new File("data"));
这个例子将FileChooser显示的初始目录设置为data。
设置初始文件名
我们可以设置初始文件名以显示在FileChooser
中。不过,某些平台(例如Windows)可能会忽略此设置。这是设置FileChooser
的初始文件名的示例:
fileChooser.setInitialFileName("myfile.txt");
本示例将初始文件名设置为myfile.txt
。
添加文件名过滤器
可以向JavaFXFileChooser
添加文件名过滤器。文件名过滤器用于过滤用户在文件系统中浏览时在FileChooser中显示的文件。这是添加文件名过滤器的示例:
FileChooser fileChooser = new FileChooser(); fileChooser.getExtensionFilters().addAll( new FileChooser.ExtensionFilter("Text Files", "*.txt") ,new FileChooser.ExtensionFilter("HTML Files", "*.htm") );
这个例子在FileChooser
中添加了两个文件名过滤器。用户可以在" FileChooser"对话框中的这些文件名过滤器之间进行选择。