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.9KB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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 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 PC
  21. */
  22. /**
  23. *
  24. * @author le
  25. */
  26. public class AdressVerwaltungModel extends AbstractTableModel
  27. {
  28. private ArrayList<ArrayList<String>> daten;
  29. private ArrayList<String> adressEintraegeDaten;
  30. private ArrayList<String> adressEintraegeNamen;
  31. /**
  32. *Konstruktor für AdressverwaltungModel
  33. */
  34. public AdressVerwaltungModel()
  35. {
  36. adressEintraegeDaten = new ArrayList<>();
  37. adressEintraegeNamen = new ArrayList<>();
  38. daten = new ArrayList<>();
  39. adressEintraegeNamen.add("Vorname");
  40. adressEintraegeNamen.add("Name");
  41. adressEintraegeNamen.add("Adresse");
  42. adressEintraegeNamen.add("E-Mail");
  43. adressEintraegeDaten.add("");
  44. adressEintraegeDaten.add("");
  45. adressEintraegeDaten.add("");
  46. adressEintraegeDaten.add("");
  47. // adressEintraegeNamen.add("Telefon");
  48. // adressEintraegeDaten.add("122345");
  49. daten.add(adressEintraegeDaten);
  50. }
  51. @Override
  52. public int getRowCount()
  53. {
  54. return daten.size();
  55. }
  56. @Override
  57. public int getColumnCount()
  58. {
  59. return adressEintraegeDaten.size();
  60. }
  61. @Override
  62. public Object getValueAt(int row, int col)
  63. {
  64. return daten.get(row).get(col);
  65. }
  66. @Override
  67. public void setValueAt(Object value, int row, int col)
  68. {
  69. daten.get(row).set(col, (String)value);
  70. }
  71. @Override
  72. public boolean isCellEditable(int row, int col)
  73. {
  74. return true;
  75. }
  76. @Override
  77. public String getColumnName(int col)
  78. {
  79. return adressEintraegeNamen.get(col);
  80. }
  81. public ArrayList<String> getLastRowData()
  82. {
  83. ArrayList<String> lastRow = new ArrayList<>();
  84. for (int i = 0; i <= daten.get(0).size()-1; i++)
  85. {
  86. lastRow.add(daten.get(daten.size()-1).get(i));
  87. }
  88. return lastRow;
  89. }
  90. public void eintragHinzufuegen(ArrayList<String> letzteSpalte)
  91. {
  92. daten.add(letzteSpalte);
  93. this.fireTableDataChanged();
  94. }
  95. public void eintragHinzufuegen()
  96. {
  97. adressEintraegeDaten = new ArrayList<>();
  98. adressEintraegeNamen.forEach(s -> adressEintraegeDaten.add(""));
  99. daten.add(adressEintraegeDaten);
  100. this.fireTableDataChanged();
  101. }
  102. public void eintragLoeschen(int row)
  103. {
  104. daten.remove(row);
  105. this.fireTableDataChanged();
  106. }
  107. public void spalteHinzufuegen(String name)
  108. {
  109. adressEintraegeNamen.add(name);
  110. }
  111. public void datenSpeichern(File datei) throws FileNotFoundException, IOException
  112. {
  113. FileOutputStream fos = new FileOutputStream(datei);
  114. BufferedOutputStream bos = new BufferedOutputStream(fos);
  115. ObjectOutputStream oos = new ObjectOutputStream(bos);
  116. oos.writeObject(daten);
  117. oos.writeObject(adressEintraegeNamen);
  118. oos.flush();
  119. oos.close();
  120. }
  121. public void datenLesen(File datei) throws FileNotFoundException, IOException, ClassNotFoundException
  122. {
  123. FileInputStream fis = new FileInputStream(datei);
  124. BufferedInputStream bis = new BufferedInputStream(fis);
  125. ObjectInputStream ois = new ObjectInputStream(bis);
  126. daten = (ArrayList<ArrayList<String>>)ois.readObject();
  127. adressEintraegeNamen = (ArrayList<String>)ois.readObject();
  128. adressEintraegeDaten = daten.get(daten.size()-1);
  129. ois.close();
  130. this.fireTableDataChanged();
  131. }
  132. }