2016-08-08 1 views
-1

J'avais ouvert un fichier en utilisant JFileChooser. Maintenant, je veux également enregistrer ce fichier dans un répertoire d'ordinateur par JFileChooser. Comment puis-je l'enregistrer?Enregistrer Tout fichier de format en utilisant JFileChooser dans Swing

Actuellement, mon code ne fournit qu'une interface utilisateur, mais il ne dispose pas de fonctionnalité d'enregistrement.

package javaapplication1; 

import java.awt.image.RenderedImage; 
import java.io.File; 
import javax.imageio.ImageIO; 
import javax.swing.JFileChooser; 
import javax.swing.filechooser.FileFilter; 
import javax.swing.filechooser.FileNameExtensionFilter; 

/** 
* 
* @author KHAN 
*/ 
public class NewJFrame extends javax.swing.JFrame { 

    /** 
    * Creates new form NewJFrame 
    */ 
    public NewJFrame() { 
     initComponents(); 
    } 

    /** 
    * This method is called from within the constructor to initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is always 
    * regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jTextField1 = new javax.swing.JTextField(); 
     jButton1 = new javax.swing.JButton(); 
     jTextField2 = new javax.swing.JTextField(); 
     jButton2 = new javax.swing.JButton(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     jButton1.setText("Browse"); 
     jButton1.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton1ActionPerformed(evt); 
      } 
     }); 

     jButton2.setText("Save to"); 
     jButton2.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton2ActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(55, 55, 55) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
        .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE) 
        .addComponent(jTextField1)) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
         .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(29, 29, 29) 
         .addComponent(jButton2))) 
       .addContainerGap(56, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(87, 87, 87) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jButton1)) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(29, 29, 29) 
         .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(44, 44, 44) 
         .addComponent(jButton2))) 
       .addContainerGap(123, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold>       

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
     JFileChooser chooser = new JFileChooser(); 

     if (JFileChooser.APPROVE_OPTION == chooser.showSaveDialog(null)) { 
      File file = chooser.getSelectedFile(); 
      file.getAbsoluteFile(); 
     } 

    }           

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     JFileChooser chooser=new JFileChooser(); 
     FileFilter filter=new FileNameExtensionFilter("JPEG file", "jpg" , "jpeg" , "pdf" , "txt" ,"png"); 
     chooser.showOpenDialog(null); 
     File f=chooser.getSelectedFile(); 
     String filename=f.getAbsolutePath(); 
     jTextField1.setText(filename); 
     jTextField2.setText(filename); 

    }           

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 
      NewJFrame sfc = new NewJFrame(); 
    sfc.setVisible(true); 

     /* Create and display the form */ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new NewJFrame().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JButton jButton1; 
    private javax.swing.JButton jButton2; 
    private javax.swing.JTextField jTextField1; 
    private javax.swing.JTextField jTextField2; 
    // End of variables declaration     
} 

//Eddited 
 

 
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
 
     JFileChooser chooser = new JFileChooser(); 
 

 
     if (JFileChooser.APPROVE_OPTION == chooser.showSaveDialog(null)) { 
 
      File file = chooser.getSelectedFile(); 
 
      file.getAbsoluteFile(); 
 
     } 
 

 
    }           
 

 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
 
     JFileChooser chooser=new JFileChooser(); 
 
     FileFilter filter=new FileNameExtensionFilter("JPEG file", "jpg" , "jpeg" , "pdf" , "txt" ,"png"); 
 
     chooser.showOpenDialog(null); 
 
     File f=chooser.getSelectedFile(); 
 
     String filename=f.getAbsolutePath(); 
 
     jTextField1.setText(filename); 
 
     jTextField2.setText(filename); 
 

 
    } 

+0

Sauvegarder ce fichier spécifiquement? Est-ce du texte, du texte structuré, une image ..? –

+0

Bro Je viens de cliquer sur le bouton Parcourir, à partir du bureau, je choisis example.pdf ou example.png. Maintenant, j'ai eu un autre bouton de Save As.Now en cliquant sur Enregistrer comme je veux l'enregistrer dans n'importe quel répertoire de PC –

+0

J'ai eu modifier le code, veuillez voir la partie edit.First fonction est la navigation dans le fichier.Et deuxième fuction permettra d'économiser fichier broswed à n'importe quel répertoire. (Enregistrer sous Windows) .Il peut être de n'importe quel format.Actuellement deuxième fuction montre juste Enregistrer sous Windows, mais il ne sauve pas –

Répondre

0

Vous devez écrire à vous-même. Voir FileOutputStream et Java NIO

+0

Pouvez-vous ajouter ces lignes ici? –

+0

Que voulez-vous enregistrer dans le fichier? – Jayfray

+0

Découvrez http://stackoverflow.com/questions/2885173/how-to-create-a-file-and-write-to-a-file-in-java voir si cela vous aide. Si non, dites-moi ce que vous voulez enregistrer dans le fichier – Jayfray

1

Il semble que vous souhaitiez enregistrer une image. Pour cela, utilisez ImageIO.write(RenderedImage,String,File):

écrit une image en utilisant un ImageWriter arbitraire qui prend en charge le format donné à un File. S'il y a déjà un File présent, son contenu est ignoré.