SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[RISOLTO] JAVA leggere csv in jtable e salvare modifiche
#9
il pezzo di codice è stato aggiunto al tuo, comunque eccolo tutto
Codice:
package csv4;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.table.*;

/**
*
* @author User
*/
public class CSV4 {
  public static void main(String[] args) {
      String datafile = "Rubrica.txt";
      DefaultTableModel m = null;
      /* NOTA BENE: il try-catch è un costrutto MOLTO costoso in tempi di calcolo,
       * dovuto alla gestione delle eccezioni --> INSERIRE DENTRO SOLO le istruzioni
       * che possono causare eccezioni, tutto il resto è da mettere fuory dal try
       */
      try {          
          FileReader fin = new FileReader(datafile);
          m = createTableModel(fin, null);
      } catch (Exception e) {
          e.printStackTrace();
      }
      JFrame f = new JFrame();
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JPanel panel = new JPanel(); // layout del flusso è predefinito sui pannelli
      JScrollPane jsp = new JScrollPane(new JTable(m));
      // imposta una dimensione ragionevole per il pannello di scorrimento
      jsp.setPreferredSize(new Dimension(300, 150));
      panel.add(jsp); // aggiunge la tabella
      JButton button = new JButton("SALVA");
      panel.add(button); // aggiunge il bottone al pannello
      f.getContentPane().add(panel); // aggiunge il pannello che contiene sia tabella che bottone
      f.setSize(400, 300);
      f.setVisible(true);
     
      button.addActionListener(new ActionListener() {
           //@Override
           public void actionPerformed(ActionEvent e) {
           String filePath = "Rubrica.csv";
           File file = new File(filePath);
           try {
               FileWriter fw = new FileWriter(file);
               BufferedWriter bw = new BufferedWriter(fw);
           
               for(int i = 0; i < m.getRowCount(); i++){//rows
                   for(int j = 0; j < m.getColumnCount(); j++){//columns
                       bw.write(m.getValueAt(i, j).toString()+",");
                   }
                   bw.newLine();
               }
           
               bw.close();
               fw.close();
           
           } catch (IOException ex) {
//           Logger.getLogger(csv.class.getName()).log(Level.SEVERE, null, ex);
           }                
               
      }});
  }

  public static DefaultTableModel createTableModel(Reader in,
      Vector<Object> headers) {
      DefaultTableModel model = null;
      Scanner s = null;

      try {
          Vector<Vector<Object>> rows = new Vector<Vector<Object>>();
          s = new Scanner(in);

          while (s.hasNextLine()) {
              rows.add(new Vector<Object>(Arrays.asList(s.nextLine()
                                                         .split("\\s*,\\s*",
                              -1))));
          }

          if (headers == null) {
              headers = rows.remove(0);
              model = new DefaultTableModel(rows, headers);
          } else {
              model = new DefaultTableModel(rows, headers);
          }

          return model;
      } finally {
          s.close();
      }
  }
}
per quanto riguarda gli errori non ci capisco veramente un tubo, ne scrive troppi,

Edit;
hai ragione, ho risolto così:
Codice:
public class CSV4 {
  static DefaultTableModel m = null;
  public static void main(String[] args) {
Cita messaggio
Grazie da:


Messaggi in questa discussione
RE: JAVA leggere csv in jtable e salvare modifiche - da patel - 15-10-2018,15:53

Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)