You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AdressverwaltungModel.java 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package adressverwaltung.model;
  7. import java.io.BufferedInputStream;
  8. import java.io.BufferedOutputStream;
  9. import java.io.File;
  10. import java.io.FileInputStream;
  11. import java.io.FileNotFoundException;
  12. import java.io.FileOutputStream;
  13. import java.io.IOException;
  14. import java.io.ObjectInputStream;
  15. import java.io.ObjectOutputStream;
  16. import java.util.ArrayList;
  17. import javax.swing.table.AbstractTableModel;
  18. /**
  19. *
  20. * @author le
  21. */
  22. public class AdressverwaltungModel extends AbstractTableModel
  23. {
  24. private ArrayList<ArrayList<String>> daten;
  25. private ArrayList<String> adressEintraegeDaten;
  26. private ArrayList<String> adressEintraegeNamen;
  27. public AdressverwaltungModel()
  28. {
  29. adressEintraegeDaten = new ArrayList<>();
  30. adressEintraegeNamen = new ArrayList<>();
  31. daten = new ArrayList<>();
  32. adressEintraegeNamen.add("Name");
  33. adressEintraegeDaten.add("Lehner");
  34. adressEintraegeNamen.add("Telefon");
  35. adressEintraegeDaten.add("122345");
  36. daten.add(adressEintraegeDaten);
  37. }
  38. @Override
  39. public int getRowCount()
  40. {
  41. return daten.size();
  42. }
  43. @Override
  44. public int getColumnCount()
  45. {
  46. return adressEintraegeDaten.size();
  47. }
  48. @Override
  49. public Object getValueAt(int row, int col)
  50. {
  51. return daten.get(row).get(col);
  52. }
  53. @Override
  54. public void setValueAt(Object value, int row, int col)
  55. {
  56. daten.get(row).set(col, (String)value);
  57. }
  58. @Override
  59. public boolean isCellEditable(int row, int col)
  60. {
  61. return true;
  62. }
  63. @Override
  64. public String getColumnName(int col)
  65. {
  66. return adressEintraegeNamen.get(col);
  67. }
  68. public void eintragHinzufuegen()
  69. {
  70. adressEintraegeDaten = new ArrayList<>();
  71. adressEintraegeNamen.forEach(s -> adressEintraegeDaten.add(s));
  72. daten.add(adressEintraegeDaten);
  73. this.fireTableDataChanged();
  74. }
  75. public void eintragLoeschen(int row)
  76. {
  77. daten.remove(row);
  78. this.fireTableDataChanged();
  79. }
  80. public void spalteHinzufuegen(String name)
  81. {
  82. adressEintraegeNamen.add(name);
  83. }
  84. public void datenSpeichern(File datei) throws FileNotFoundException, IOException
  85. {
  86. FileOutputStream fos = new FileOutputStream(datei);
  87. BufferedOutputStream bos = new BufferedOutputStream(fos);
  88. ObjectOutputStream oos = new ObjectOutputStream(bos);
  89. oos.writeObject(daten);
  90. oos.writeObject(adressEintraegeNamen);
  91. oos.flush();
  92. oos.close();
  93. }
  94. public void datenLesen(File datei) throws FileNotFoundException, IOException, ClassNotFoundException
  95. {
  96. FileInputStream fis = new FileInputStream(datei);
  97. BufferedInputStream bis = new BufferedInputStream(fis);
  98. ObjectInputStream ois = new ObjectInputStream(bis);
  99. daten = (ArrayList<ArrayList<String>>)ois.readObject();
  100. adressEintraegeNamen = (ArrayList<String>)ois.readObject();
  101. adressEintraegeDaten = daten.get(daten.size()-1);
  102. ois.close();
  103. this.fireTableDataChanged();
  104. }
  105. }