JavaFX FileChooser: how to set file filters?

前端 未结 3 1400
梦如初夏
梦如初夏 2021-02-05 01:18

I want to set file filters in a JavaFX FileChooser but I could not find a way to do it.

My code:

  FileChooser fc = new FileChooser();
  fc.setTitle(\"M         


        
相关标签:
3条回答
  • 2021-02-05 01:41

    You could do:

    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("TXT files (*.txt)", "*.txt");
    chooser.getExtensionFilters().add(extFilter);
    

    Here is a simple example:

    public class ExtensionFilterExample extends Application {
    
        public static void main(String[] args) {
            launch(args);
        }
    
        @Override
        public void start(final Stage primaryStage) {
            primaryStage.setTitle("Extension Filter Example");
    
            final Label fileLabel = new Label();
    
            Button btn = new Button("Open FileChooser");
            btn.setOnAction(new EventHandler<ActionEvent>() {
    
                @Override
                public void handle(ActionEvent event) {
                    FileChooser fileChooser = new FileChooser();
    
                    // Set extension filter
                    FileChooser.ExtensionFilter extFilter = 
                            new FileChooser.ExtensionFilter("TEXT files (*.txt)", "*.txt");
                    fileChooser.getExtensionFilters().add(extFilter);
    
                    // Show open file dialog
                    File file = fileChooser.showOpenDialog(primaryStage);
                    if (file != null) {
                        fileLabel.setText(file.getPath());
                    }
                }
            });
    
            VBox vBox = new VBox(30);
            vBox.getChildren().addAll(fileLabel, btn);
            vBox.setAlignment(Pos.BASELINE_CENTER);
    
            StackPane root = new StackPane();
            root.getChildren().add(vBox);
            primaryStage.setScene(new Scene(root, 300, 250));
            primaryStage.show();
        }
    }
    
    0 讨论(0)
  • 2021-02-05 01:46

    Update for JavaFX plus multiple extensions filter:

    FileChooser fc = new FileChooser();
    
    FileChooser.ExtensionFilter fileExtensions = 
      new FileChooser.ExtensionFilter(
        "Web pages", "*.tpl", "*.html", "*.htm");
    
    fc.getExtensionFilters().add(fileExtensions);
    
    0 讨论(0)
  • 2021-02-05 02:02

    This is How you can do it.

    FileChooser fc=new FileChooser();
    FileChooser.ExtensionFilter fileExtensions =new FileChooser.ExtensionFilter("music files","*.mp3", "*.mp4");
    fc.getExtensionFilters().add(fileExtensions);
    List<File> selectedFiles=fc.showOpenMultipleDialog(null);       
    if(selectedFiles!=null){
         for(int i=0;i<selectedFiles.size();i++){
               System.out.println(selectedFiles.get(i).toString());
         }
    }
    
    0 讨论(0)
提交回复
热议问题