JavaFX文件选择器(FileChooser)
FileChooser
允许用户导航文件系统并选择一个文件或文件夹。FileChooser
类位于javafx.stage
包中。
打开文件
文件选择器可用作打开文件对话框,用于选择单个文件或多个文件,或作为文件保存对话框。以下代码创建一个FileChooser
对象并设置其标题,然后显示给用户。
FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Open Resource File"); fileChooser.showOpenDialog(stage);
可以通过设置initialDirectory
和title
属性来配置文件选择器对话框窗口。
扩展过滤器
可以设置扩展过滤器来确定在文件选择器中打开哪些文件。
fileChooser.setTitle("View Pictures"); fileChooser.setInitialDirectory(new File(System.getProperty("user.home")) ); fileChooser.getExtensionFilters().addAll( new FileChooser.ExtensionFilter("All Images", "*.*"), new FileChooser.ExtensionFilter("JPG", "*.jpg"), new FileChooser.ExtensionFilter("GIF", "*.gif"), new FileChooser.ExtensionFilter("BMP", "*.bmp"), new FileChooser.ExtensionFilter("PNG", "*.png") );
保存文件
FileChooser API允许用户为由应用程序保存的文件指定文件名及其文件夹。showSaveDialog
方法打开保存对话框窗口。
FileChooser fileChooser1 = new FileChooser(); fileChooser1.setTitle("Save Image"); System.out.println(pic.getId()); File file = fileChooser1.showSaveDialog(stage); System.out.println(file);
示例
import java.io.File; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ScrollPane; import javafx.scene.control.TextArea; import javafx.scene.control.TextAreaBuilder; import javafx.scene.layout.VBox; import javafx.scene.layout.VBoxBuilder; import javafx.stage.FileChooser; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(final Stage primaryStage) { Group root = new Group(); Button buttonLoad = new Button("Load"); buttonLoad.setOnAction(new EventHandler<ActionEvent>(){ @Override public void handle(ActionEvent arg0) { FileChooser fileChooser = new FileChooser(); FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("TXT files (*.txt)", "*.txt"); fileChooser.getExtensionFilters().add(extFilter); File file = fileChooser.showOpenDialog(primaryStage); System.out.println(file); } }); VBox vBox = VBoxBuilder.create() .children(buttonLoad) .build(); root.getChildren().add(vBox); primaryStage.setScene(new Scene(root, 500, 400)); primaryStage.show(); } }
执行上面的代码,生成以下结果 -
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王