///* // * To change this license header, choose License Headers in Project Properties. // * To change this template file, choose Tools | Templates // * and open the template in the editor. // */ // //package adressmanagement.model; // //import java.io.BufferedInputStream; //import java.io.BufferedReader; //import java.io.File; //import java.io.FileInputStream; //import java.io.FileNotFoundException; //import java.io.IOException; //import java.io.InputStreamReader; //import java.io.UnsupportedEncodingException; // ///** // * // * @author chris // */ //public class AdressmanagementModel //{ // private String text; // public AdressmanagementModel() // { // text = "?"; // } // public String getText() // { // return text; // } // public void readFromFile(File f) throws FileNotFoundException, UnsupportedEncodingException, IOException // { // //Streams // FileInputStream fis = new FileInputStream(f); // InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); // BufferedReader in = new BufferedReader(isr); // StringBuilder data = new StringBuilder(); // String line = ""; // while((line = in.readLine()) != null) // { // data.append(line); // data.append("\n"); // } // text = data.toString(); // in.close(); // //BufferedInputStream bin = new BufferedInputStream(fis); // //WICHTIG: ObjectInputStream, ObjectOutputStream --> readObject oder writeObject = Serialisierung und damit Persistenz // // } //} ///* // * To change this license header, choose License Headers in Project Properties. // * To change this template file, choose Tools | Templates // * and open the template in the editor. // */ package adressmanagement.model; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; /** * * @author le */ public class AdressmanagementModel extends AbstractTableModel { private ArrayList> daten; private ArrayList adressEintraegeDaten; private ArrayList adressEintraegeNamen; public AdressmanagementModel() { adressEintraegeDaten = new ArrayList<>(); adressEintraegeNamen = new ArrayList<>(); daten = new ArrayList<>(); adressEintraegeNamen.add("Name"); adressEintraegeDaten.add("Lehner"); adressEintraegeNamen.add("Telefon"); adressEintraegeDaten.add("122345"); daten.add(adressEintraegeDaten); } @Override public int getRowCount() { return daten.size(); } @Override public int getColumnCount() { return adressEintraegeDaten.size(); } @Override public Object getValueAt(int row, int col) { return daten.get(row).get(col); } @Override public void setValueAt(Object value, int row, int col) { daten.get(row).set(col, (String)value); } @Override public boolean isCellEditable(int row, int col) { return true; } @Override public String getColumnName(int col) { return adressEintraegeNamen.get(col); } public void eintragHinzufuegen() { adressEintraegeDaten = new ArrayList<>(); adressEintraegeNamen.forEach(s -> adressEintraegeDaten.add(s)); daten.add(adressEintraegeDaten); this.fireTableDataChanged(); } public void eintragLoeschen(int row) { daten.remove(row); this.fireTableDataChanged(); } public void spalteHinzufuegen(String name) { adressEintraegeNamen.add(name); } public void datenSpeichern(File datei) throws FileNotFoundException, IOException { FileOutputStream fos = new FileOutputStream(datei); BufferedOutputStream bos = new BufferedOutputStream(fos); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(daten); oos.writeObject(adressEintraegeNamen); oos.flush(); oos.close(); } public void datenLesen(File datei) throws FileNotFoundException, IOException, ClassNotFoundException { FileInputStream fis = new FileInputStream(datei); BufferedInputStream bis = new BufferedInputStream(fis); ObjectInputStream ois = new ObjectInputStream(bis); daten = (ArrayList>)ois.readObject(); adressEintraegeNamen = (ArrayList)ois.readObject(); adressEintraegeDaten = daten.get(daten.size()-1); ois.close(); this.fireTableDataChanged(); } }