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.

model.java 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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. public class model extends AbstractTableModel
  19. {
  20. private ArrayList<ArrayList<String>> daten;
  21. private ArrayList<String> adressEintraegeDaten;
  22. private ArrayList<String> adressEintraegeNamen;
  23. public model()
  24. {
  25. adressEintraegeDaten = new ArrayList<>();
  26. adressEintraegeNamen = new ArrayList<>();
  27. daten = new ArrayList<>();
  28. adressEintraegeNamen.add("Name");
  29. adressEintraegeDaten.add("Lehner");
  30. adressEintraegeNamen.add("Telefon");
  31. adressEintraegeDaten.add("122345");
  32. daten.add(adressEintraegeDaten);
  33. }
  34. @Override
  35. public int getRowCount()
  36. {
  37. return daten.size();
  38. }
  39. @Override
  40. public int getColumnCount()
  41. {
  42. return adressEintraegeDaten.size();
  43. }
  44. @Override
  45. public Object getValueAt(int row, int col)
  46. {
  47. return daten.get(row).get(col);
  48. }
  49. @Override
  50. public void setValueAt(Object value, int row, int col)
  51. {
  52. daten.get(row).set(col, (String)value);
  53. }
  54. @Override
  55. public boolean isCellEditable(int row, int col)
  56. {
  57. return true;
  58. }
  59. @Override
  60. public String getColumnName(int col)
  61. {
  62. return adressEintraegeNamen.get(col);
  63. }
  64. public void eintragHinzufuegen()
  65. {
  66. adressEintraegeDaten = new ArrayList<>();
  67. adressEintraegeNamen.forEach(s -> adressEintraegeDaten.add(s));
  68. daten.add(adressEintraegeDaten);
  69. this.fireTableDataChanged();
  70. }
  71. public void eintragHinzufuegenAt(int pos)
  72. {
  73. adressEintraegeDaten = new ArrayList<>();
  74. adressEintraegeNamen.forEach(s -> adressEintraegeDaten.add(s));
  75. daten.add(pos, adressEintraegeDaten);
  76. this.fireTableDataChanged();
  77. }
  78. public void eintragLoeschen(int row)
  79. {
  80. daten.remove(row);
  81. this.fireTableDataChanged();
  82. }
  83. public void spalteHinzufuegen(String name)
  84. {
  85. adressEintraegeNamen.add(name);
  86. }
  87. public void datenSpeichern(File datei) throws FileNotFoundException, IOException
  88. {
  89. FileOutputStream fos = new FileOutputStream(datei);
  90. BufferedOutputStream bos = new BufferedOutputStream(fos);
  91. ObjectOutputStream oos = new ObjectOutputStream(bos);
  92. oos.writeObject(daten);
  93. oos.writeObject(adressEintraegeNamen);
  94. oos.flush();
  95. oos.close();
  96. }
  97. public void datenLesen(File datei) throws FileNotFoundException, IOException, ClassNotFoundException
  98. {
  99. FileInputStream fis = new FileInputStream(datei);
  100. BufferedInputStream bis = new BufferedInputStream(fis);
  101. ObjectInputStream ois = new ObjectInputStream(bis);
  102. daten = (ArrayList<ArrayList<String>>)ois.readObject();
  103. adressEintraegeNamen = (ArrayList<String>)ois.readObject();
  104. adressEintraegeDaten = daten.get(daten.size()-1);
  105. ois.close();
  106. this.fireTableDataChanged();
  107. }
  108. }