2012-04-12 5 views
0

enter image description herekeinen Reim wie „Speichern unter“ Text in einer Zeichenfolge speichern und

Ich bin neu in UI-Design in Java verwenden. Ich versuche eine GUI zu erstellen, um eine Datei aus dem Internet herunterzuladen und auf Ihrer Festplatte zu speichern. Ich habe den Code funktioniert bis auf eine Sache, die ich hinzufügen möchte. Ich habe eine JFileChooser hinzugefügt, die den Benutzer den Zielordner auswählen lässt. Aber ich bin nicht in der Lage, herauszufinden, wie man den filename zu dem ändern kann, den Benutzer in die Save As Leiste auf dem JFileChooser Menü eingibt.

Blättern Button

browseButton.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) 
{ 
    chooser = new JFileChooser(); 
    chooser.setCurrentDirectory(null); 
    chooser.setDialogTitle("Select folder to save"); 
    chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
    chooser.setAcceptAllFileFilterUsed(true); 

    //chooser.showDialog(downloadButton, "Save"); 
    if(chooser.showSaveDialog(downloadButton) == JFileChooser.APPROVE_OPTION) 
    { 
     System.out.println("The location to save is: " + chooser.getCurrentDirectory()); 
     DESTINATION_FOLDER = chooser.getCurrentDirectory().toString(); 
    } 
} 

});

Download Button

URLConnection connection = downloadUrl.openConnection(); 

input = new BufferedInputStream(connection.getInputStream()); 
output = new FileOutputStream(DESTINATION_FOLDER + "/" + filename); 

Hier filename sollte derjenige sein, der Benutzer eingibt. Zeiger auf wie man das macht?

Antwort

0

Ohne mehr den Codes der besten da ich vorschlagen könnte, ist ein globaler String in der Klasse in dem Sie arbeiten erstellen

public class gui extends JFrame{ 
    public String filePath=""; 
    public static void main(String args[]){ 
     //button code 
     browseButton.addActionListener(new ActionListener()) 
     saveAsButton.addActionListener(new ActionListener()) 
     URLConnection connection = downloadUrl.openConnection(); 



    } 

public void actionPerformed(ActionEvent e) 
{ 
    if (e.getActionCommand().equals("browseButton"){ 
     chooser = new JFileChooser(); 
     chooser.setCurrentDirectory(null); 
     chooser.setDialogTitle("Select folder to save"); 
     chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
     chooser.setAcceptAllFileFilterUsed(true); 

     //chooser.showDialog(downloadButton, "Save"); 
     if(chooser.showSaveDialog(downloadButton) == JFileChooser.APPROVE_OPTION) 
     { 
      System.out.println("The location to save is: "+chooser.getCurrentDirectory()); 
      filePath = chooser.getCurrentDirectory().toString(); 
     } 
    else{ 
     //save as button selected 
     input = new BufferedInputStream(connection.getInputStream()); 
     output = new FileOutputStream(filePath); 
    } 
} 

} 
+0

Vielen Dank für Ihre Antwort. Aber, ähm, ich habe tatsächlich gefragt, wie man 'fileName' und nicht' filePath' verwendet, die der Benutzer auf der 'Save As'-Textleiste im Auswahlmenü spezifiziert. Ich habe ein Bild zum besseren Verständnis zur Verfügung gestellt. – noMAD

0

diese Zeilen hinzufügen:.

chooser.setDialogType(JFileChooser.SAVE_DIALOG); 

Voll Code:

browseButton.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) 
{ 
    chooser = new JFileChooser(); 
    chooser.setCurrentDirectory(null); 
    chooser.setDialogTitle("Select folder to save"); 
    chooser.setDialogType(JFileChooser.SAVE_DIALOG); 
    chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
    chooser.setAcceptAllFileFilterUsed(true); 

    //chooser.showDialog(downloadButton, "Save"); 
    if(chooser.showSaveDialog(downloadButton) == JFileChooser.APPROVE_OPTION) 
    { 
     System.out.println("The location to save is: " + chooser.getCurrentDirectory()); 
     DESTINATION_FOLDER = chooser.getCurrentDirectory().toString(); 
    } 
} 
1

Eigentlich brauchen Sie nicht die Dateinamen aus der Save As Bar in der JF zu bekommen ileChooser. tun Genau wie folgt aus:

browseButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e){ 
     chooser = new JFileChooser(); 
     chooser.setCurrentDirectory(null); 
     chooser.setDialogTitle("Select folder to save"); 
     //Don't use the 'FileSelectionMode();'. Let it be Default. 
     chooser.setAcceptAllFileFilterUsed(true); 
    if(chooser.showSaveDialog(downloadButton) == JFileChooser.APPROVE_OPTION) 
    { 
    file = chooser.getSelectedFile(); 
    //file should be declared as a File. 
    System.out.println("The location to save is: " + chooser.getCurrentDirectory();)); 
    System.out.println("The FileName is: " + file.getName()); 
    } 
} 

DOWNLOAD BUTTON:

URLConnection connection = downloadUrl.openConnection(); 
    input = new BufferedInputStream(connection.getInputStream()); 
    output = new FileOutputStream(file); 
Verwandte Themen