如何使用 JavaFX 通过具有特定扩展名的 FileChooser 打开照片?
How to open Photos by the FileChooser with a certain extension with JavaFX?
我正在制作照片管理器,我正在搜索以了解如何从 FileChooser
中获取具有某些扩展名的文件:*.png - *.jpg ...
那么我应该使用哪种方法或应该使用哪种代码?
我试过这个:fileChooser.getExtensionFilters();
但它没有任何作用。
任何人都可以帮助我吗?
FileChooser class has a nested class 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);
}
}
我正在制作照片管理器,我正在搜索以了解如何从 FileChooser
中获取具有某些扩展名的文件:*.png - *.jpg ...
那么我应该使用哪种方法或应该使用哪种代码?
我试过这个:fileChooser.getExtensionFilters();
但它没有任何作用。
任何人都可以帮助我吗?
FileChooser class has a nested class 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);
}
}