我正在制作照片管理器,我正在搜索如何从FileChooser
获取带有扩展名的文件:*.png - *.jpg ...
那么我应该使用哪种方法或应该使用哪种代码?
我试过这个:fileChooser.getExtensionFilters();
但它什么都没有。
任何人都可以帮助我吗?
答案 0 :(得分:4)
FileChooser类有一个嵌套类ExtensionFilter。首先,您必须创建一个实例:
FileChooser.ExtensionFilter imageFilter
= new FileChooser.ExtensionFilter("Image Files", "*.jpg", "*.png");
之后您可以将此实例添加到FileChooser的扩展程序列表中:
FileChooser fc = new FileChooser();
fc.getExtensionFilters().add(imageFilter);
Minimal Complete Verifiable Example代码如下:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
public class FileChooserTest extends Application {
@Override
public void start(Stage primaryStage) {
FileChooser.ExtensionFilter imageFilter
= new FileChooser.ExtensionFilter("Image Files", "*.jpg", "*.png");
FileChooser fc = new FileChooser();
fc.getExtensionFilters().add(imageFilter);
Button btn = new Button();
btn.setText("Open File");
btn.setOnAction((ActionEvent event) -> {
fc.showOpenDialog(primaryStage);
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("FileChooser Demo");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}