14-10-2018,11:01
(Questo messaggio è stato modificato l'ultima volta il: 16-10-2018,07:38 da patel.)
questo codice legge il csv e crea la jtable, vorrei aggiungere un pulsante SALVA e non riesco a fare l'ADD
Codice:
package csv;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class csv {
public static void main(String[] args) {
try {
String datafile = "Rubrica.txt";
FileReader fin = new FileReader(datafile);
DefaultTableModel m = createTableModel(fin, null);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new JScrollPane(new JTable(m)));
f.setSize(400, 300);
f.setVisible(true);
/* FileWriter out = new FileWriter("Rubrica.csv");
defaultTableModelToStream(m, out);
out.close();*/
} catch (Exception e) {
e.printStackTrace();
}
}
public static void defaultTableModelToStream(DefaultTableModel dtm,
Writer out) throws IOException {
final String LINE_SEP = System.getProperty("line.separator");
int numCols = dtm.getColumnCount();
int numRows = dtm.getRowCount();
// Write headers
String sep = "";
for (int i = 0; i < numCols; i++) {
out.write(sep);
out.write(dtm.getColumnName(i));
sep = ",";
}
out.write(LINE_SEP);
for (int r = 0; r < numRows; r++) {
sep = "";
for (int c = 0; c < numCols; c++) {
out.write(sep);
out.write(dtm.getValueAt(r, c).toString());
sep = ",";
}
out.write(LINE_SEP);
}
}
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();
}
}
}