2009-03-19 7 views
3

Ich bin neu in Swing und möchte die Download-Datei-Funktion in meinem Swing-Code implementieren, die es dem Benutzer erlauben würde, entweder die spezifische Datei zu speichern oder zu öffnen.Wie kann ich eine Download-Dateioption in JAVA Swing haben?

Ich habe mir JFileChooser.showOpenDialog und showSaveDialog angeschaut, aber ich möchte es nicht verwenden, da es mir die Möglichkeit gibt, eine beliebige Datei aus dem Dateisystem auszuwählen.

Ich hoffe, mein Problem ist klar. Bitte hilf mir dabei.

Antwort

5

Sie möchten sie verwenden und einen Filter hinzufügen. Beispiel:

JFileChooser chooser = new JFileChooser(); 
    // Note: source for ExampleFileFilter can be found in FileChooserDemo, 
    // under the demo/jfc directory in the Java 2 SDK, Standard Edition. 
    ExampleFileFilter filter = new ExampleFileFilter(); 
    filter.addExtension("jpg"); 
    filter.setDescription("JPG & GIF Images"); 
    chooser.setFileFilter(filter); 
    int returnVal = chooser.showSaveDialog(parent); 
    if(returnVal == JFileChooser.APPROVE_OPTION) { 
     System.out.println("You chose to open this file: " + 
      chooser.getSelectedFile().getName()); 
    } 

Hier werden nur JPG- und GIF-Dateien angezeigt. Beispiel bestohlen here

Edit: Nur damit Sie wissen ExampleFileFilter die abstact Klasse FileFilter

bearbeiten implementiert: Da Sie den Namen der Datei kennen, können Sie nur eine Taste, die sagt, offen und Runtime .getRuntime verwenden. exec ('Die zu öffnende Datei.doc ") und diese sollte in der entsprechenden Anwendung geöffnet werden.

Zum Speichern werden Sie immer noch aufgefordert, sie zu finden, wo sie es speichern möchten, so dass Sie immer noch benötigen JFileChooser: Ich würde immer noch einen Filter verwenden und bei Bedarf die Dateierweiterung dynamisch bestimmen und dann folgendes tun:

JFileChooser chooser = new JFileChooser(); 
    // Note: source for ExampleFileFilter can be found in FileChooserDemo, 
    // under the demo/jfc directory in the Java 2 SDK, Standard Edition. 

    String selectedFile = "The suggested save name."; 
    chooser.setSelectedFile(selectedFile); 

    ExampleFileFilter filter = new ExampleFileFilter(); 
    String extension = "Do something to find your extension"; 
    filter.addExtension(extension); 
    filter.setDescription("JPG & GIF Images"); 
    chooser.setFileFilter(filter); 
    int returnVal = chooser.showSaveDialog(parent); 
    if(returnVal == JFileChooser.APPROVE_OPTION) { 
     System.out.println("You chose to open this file: " + 
      chooser.getSelectedFile().getName()); 
     //then write your code to write to disk 
    } 

Hoffe, dass hilft.

+0

Hey, ich möchte nicht Beschränkungen für das Öffnen einer Datei setzen, aber ein Dialogfeld haben wollen, dass der Benutzer entweder eine bestimmte Datei öffnen oder speichern kann, sagen ein Bericht, der von meinem System generiert wird. Hoffe es ist viel frei Jetzt. – NewToJava

+0

Wollen Sie sagen, dass Sie in der Lage sein sollen, eine bestimmte Datei zu öffnen, von der Sie bereits den Namen kennen? –

+0

Ja, ich bin absolut rit..wat ich will, wenn wir eine Anpassung auf Google Mail haben, die Art, wie es zum Download auffordert und zeigt dann entweder speichern oder öffnen. – NewToJava

1

Sie können Filter zur Dateiauswahl hinzufügen. Es ist einfach, Ihre eigenen zu implementieren, die nur die Dateien akzeptieren, die Sie zulassen.

Nachdem Sie die Datei ausgewählt haben, müssen Sie das Speichern/Lesen der Datei selbst implementieren. In Desktop-Anwendungen gibt es keinen Download/Upload.

+0

soweit ich verstehe, ein Filter Wud helfen Sie mir nur einige Dateitypen zu beschränken. Was ich will, ist ein Dialogfeld, das es dem Benutzer erlaubt, entweder eine bestimmte Datei zu öffnen, die von meinem Tool generiert wird, einen Bericht oder ein Smthing. – NewToJava

+0

Thnaks Marko .. jetzt habe ich eine Idee, wie es zu machen ist .. vielen Dank für Ihre Eingaben :) – NewToJava

+0

Ein upvote ist so gut wie danke :) – Marko