2016-08-08 63 views
-1

Ich hatte eine Datei mit JFileChooser öffnen. Jetzt möchte ich diese Datei auch in einem Computerverzeichnis unter JFileChooser speichern. Wie kann ich es speichern?Speichern Sie alle Format-Datei mit JFileChooser in Swing

Derzeit bietet mein Code nur Benutzeroberfläche, aber es hat keine Speicherfunktion.

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

Speichern Sie welche Datei speziell? Ist es Text, strukturierter Text, ein Bild ..? –

+0

Bro Ich hatte nur auf Durchsuchen klicken, von Desktop wähle ich beispiel.pdf oder example.png. Jetzt hatte ich anderen Knopf von Speichern als.Now, indem ich auf Speichere, wie ich es in irgendein Verzeichnis von PC –

+0

speichern möchte Ich hatte den Code bearbeiten, freundlich sehen Sie den Schnittteil. Erste Funktion browst die Datei. Und zweite Funktion wird das speichern Broswed-Datei in ein beliebiges Verzeichnis. (Speichern als Windows) .Es kann von jedem Format sein. Derzeit zweite Funktion zeigt nur Speichern als Windows, aber es speichert nicht –

Antwort

0

Man muss sich selbst, es schreiben. Siehe FileOutputStream und Java NIO

+0

Können Sie diese Zeilen hier hinzufügen? –

+0

Was möchten Sie in der Datei speichern? – Jayfray

+0

Schauen Sie sich http://stackoverflow.com/questions/2885173/how-to-create-a-file-and-write-to-a-file-in-java an, ob Ihnen das hilft. Wenn nicht, dann sag mir, was du in der Datei speichern willst: – Jayfray

1

Es scheint, dass Sie ein Bild speichern möchten. Dafür verwenden ImageIO.write(RenderedImage,String,File):

Schreibt ein Bild eines beliebigen ImageWriter verwenden, die die gegebenen Format in ein File unterstützt. Wenn bereits eine File vorhanden ist, wird der Inhalt verworfen.