2016-08-08 2 views
-1

У меня был открытый файл с использованием JFileChooser. Теперь я также хочу сохранить этот файл в каталоге компьютера на JFileChooser. Как я могу его сохранить?Сохранить Любой файл формата с помощью JFileChooser в Swing

В настоящее время мой код предоставляет только пользовательский интерфейс, но он не имеет функции сохранения.

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

Сохраните файл в частности? Это текст, структурированный текст, изображение ..? –

+0

Bro Я просто нажал кнопку обзора, с рабочего стола я выбираю example.pdf или example.png. Теперь у меня была другая кнопка Save As.Now, нажав save, поскольку я хочу сохранить ее в любом каталоге ПК. –

+0

Я редактировал код, любезно смотрю на часть редактирования. Первая функция просматривает файл. И второй fuction сохранит это broswed-файл в любой каталог. (Сохранить как Windows). Он может быть любого формата. В настоящее время второй fuction просто показывает «Сохранить как окна», но он не сохраняет –

ответ

0

Вы должны написать к нему самому. См. FileOutputStream и Java NIO

+0

Можете ли вы добавить эти строки здесь? –

+0

Что вы хотите сохранить в файле? – Jayfray

+0

Ознакомьтесь с http://stackoverflow.com/questions/2885173/how-to-create-a-file-and-write-to-a-file-in-java, если это вам поможет. Если нет, то скажите мне, что вы хотите сохранить в файл. – Jayfray

1

Возможно, вы хотите сохранить изображение. Для этого используют ImageIO.write(RenderedImage,String,File):

записывает изображение с помощью произвольного ImageWriter, который поддерживает данный формат к File. Если уже есть File, его содержимое отбрасывается.