JavaFX 文件選擇器

2018-03-12 23:43 更新

JavaFX教程 - JavaFX 文件選擇器


FileChooser允許用戶導(dǎo)航文件系統(tǒng)并選擇一個(gè)文件或文件夾。

FileChooser類位于javafx.stage包中。

打開(kāi)文件

文件選擇器可用作打開(kāi)文件對(duì)話框,用于選擇單個(gè)文件或多個(gè)文件,或作為文件保存對(duì)話框。

以下代碼創(chuàng)建一個(gè)FileChooser對(duì)象并設(shè)置其標(biāo)題,然后顯示到用戶。

FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
fileChooser.showOpenDialog(stage);

我們可以通過(guò)設(shè)置initialDirectory和title屬性來(lái)配置文件選擇器對(duì)話框窗口。


擴(kuò)展過(guò)濾器

我們可以設(shè)置擴(kuò)展過(guò)濾器來(lái)確定在文件選擇器中打開(kāi)哪些文件。

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允許用戶指定文件名及其文件夾用于由應(yīng)用程序保存的文件。

showSaveDialog方法打開(kāi)保存對(duì)話框窗口。

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

}

上面的代碼生成以下結(jié)果。

null
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)