2012-11-29 15 views
25

मैं जावाफैक्स फ़ाइलकोजर में फ़ाइल फ़िल्टर सेट करना चाहता हूं लेकिन मुझे ऐसा करने का कोई तरीका नहीं मिला।जावाएफएक्स फ़ाइलकोज़र: फ़ाइल फ़िल्टर कैसे सेट करें?

मेरे कोड:

FileChooser fc = new FileChooser(); 
    fc.setTitle("My File Chooser"); 
    File f = fc.showOpenDialog(primaryStage); 
    System.out.println(f); 
+2

मैं अनुभव की जरूरत नहीं है, लेकिन यह लग रहा है जैसे कि यह समान है इस सूत्र में कोड करने के लिए: https://forums.oracle.com/forums/thread.jspa?messageID=10333202 – Charlie

उत्तर

45

आप कर सकता है: JavaFX प्लस कई एक्सटेंशन फिल्टर के लिए

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

धन्यवाद, यह वास्तव में काम करता है । मैंने प्रलेखन में getExtensionFilters() को देखा, लेकिन मुझे addExtensionFilter() या setExtensionFilters() जैसे कुछ की उम्मीद थी। – ceklock

+1

आपका स्वागत है :) – Reimeus

+0

क्या फाइलकोजर का पुन: उपयोग किया जा सकता है या क्या इसे प्रत्येक ईवेंट की घटना के लिए बनाया जाना चाहिए? – ed22

10

अपडेट::

FileChooser fc = new FileChooser(); 

FileChooser.ExtensionFilter fileExtensions = 
    new FileChooser.ExtensionFilter(
    "Web pages", "*.tpl", "*.html", "*.htm"); 

fc.getExtensionFilters().add(fileExtensions); 

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

यहाँ एक सरल उदाहरण है

-1

यह है कि आप इसे कैसे कर सकते हैं।

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

यह @Zon द्वारा प्रदान किए गए उत्तर का डुप्लिकेट है – Darrelk

संबंधित मुद्दे