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();
}
}
執行上面的代碼,生成以下結果 -
上一篇:
JavaFX顏色選擇器(ColorPicker)
下一篇:
JavaFX菜單(Menu)