Immer noch mein tolles Fuhrpark Management System.
Ich bin jetzt soweit, dass ich Meine Datensätze beim Programmstart in eine ArrayList speichere um so effizienter mit den Daten arbeiten zu können.
Wenn das Programm beendet wird, werden die Daten aus der ArrayList wieder in die Datei geschrieben.
Das funktioniert soweit alles ganz gut. Zumindest solange ich nur einen Datensatz habe.
Sobald ich den Datensatz aus der Datei lese und dann einen weiteren anfügen möchte überspeichert er innerhalb der ArrayList meinen ersten Datensatz mit dem neuen und schreibt ihn aber gleich nochmal dahinter.
java:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
| String parkplatz = (String) parkc.getSelectedItem();
String stellplatz = (String) stellc.getSelectedItem();
Fahrzeug f;
for(int i=0; i<fuhrpark.kfzdata.size(); i++) {
f = (Fahrzeug) fuhrpark.kfzdata.get(i);
if (parkplatz.equals(f.Parkplatz.toString()) && stellplatz.equals(f.Stellplatz.toString())) {
JPanel mainPanel2 = new JPanel();
JPanel bottomPanel2 = new JPanel();
JLabel besetzt = new JLabel("Stellplatz besetzt");
JButton ok = new JButton("OK");
final JDialog d2 = new JDialog();
mainPanel2.setLayout(new GridLayout(1,2,2,2));
bottomPanel2.setLayout(new FlowLayout(FlowLayout.RIGHT));
d2.setLayout(new BorderLayout(5,50));
Dimension frameSize = new Dimension(200,150);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int top = (screenSize.height - frameSize.height) / 2;
int left = (screenSize.width - frameSize.width) / 2;
d2.setLocation(left, top);
d2.add(mainPanel2);
d2.add(bottomPanel2, BorderLayout.PAGE_END);
mainPanel2.add(fehlt);
bottomPanel2.add(ok);
d2.setSize(200, 150);
d2.setTitle("Stellplatz besetzt");
d2.setVisible( true );
ok.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
d2.setVisible(false);
d2.dispose();
d.setVisible( true );
}
});
}
}
Date dt2 = new Date();
SimpleDateFormat df2 = new SimpleDateFormat( "yyyyMMdd" );
String date2 = df2.format(dt2);
String fullid = null;
if(!fuhrpark.kfzdata.isEmpty()) {
f = (Fahrzeug) fuhrpark.kfzdata.get(fuhrpark.kfzdata.size() -1);
int test = Integer.parseInt(f.FahrzeugID.toString().substring(0, 8));
int id2 = Integer.parseInt(f.FahrzeugID.toString().substring(8));
if (f.FahrzeugID == null)
{
System.out.println("Fehler in der id!");
}
else
{
if (Integer.parseInt(date2) == test)
{
while (id <= id2) {
id = id + 1;
}
}
}
fullid = date2 + id;
f.FahrzeugID = Integer.parseInt(fullid);
f.Marke = (String) markec.getSelectedItem();
f.Typ = (String) typc.getSelectedItem();
f.Berechtigungsart = (String) berec.getSelectedItem();
f.Erstzulassung = Long.parseLong(erstzt.getText());
f.Kaufpreis = Long.parseLong(preist.getText());
f.Ladevolumen = Integer.parseInt(volt.getText());
f.Sitzplaetze = Integer.parseInt(plaetzet.getText());
f.Leistung = Integer.parseInt(leistungt.getText());
f.Kilometerstand = Long.parseLong(kilometert.getText());
f.Kraftstoff = (String) kraftstoffc.getSelectedItem();
f.Inspektion = Long.parseLong(inspt.getText());
f.HU = Long.parseLong(hut.getText());
f.AU = Long.parseLong(aut.getText());
f.Versicherung = (String) versc.getSelectedItem();
f.KategorieID = (String) kategc.getSelectedItem();
f.Parkplatz = (String) parkc.getSelectedItem();
f.Stellplatz = (String) stellc.getSelectedItem();
f.Status = "frei";
f.Schaden = "";
f.EOD = "";
}
else {
fullid = date2 + id;
f = new Fahrzeug();
f.FahrzeugID = Integer.parseInt(fullid);
f.Marke = (String) markec.getSelectedItem();
f.Typ = (String) typc.getSelectedItem();
f.Berechtigungsart = (String) berec.getSelectedItem();
f.Erstzulassung = Long.parseLong(erstzt.getText());
f.Kaufpreis = Long.parseLong(preist.getText());
f.Ladevolumen = Integer.parseInt(volt.getText());
f.Sitzplaetze = Integer.parseInt(plaetzet.getText());
f.Leistung = Integer.parseInt(leistungt.getText());
f.Kilometerstand = Long.parseLong(kilometert.getText());
f.Kraftstoff = (String) kraftstoffc.getSelectedItem();
f.Inspektion = Long.parseLong(inspt.getText());
f.HU = Long.parseLong(hut.getText());
f.AU = Long.parseLong(aut.getText());
f.Versicherung = (String) versc.getSelectedItem();
f.KategorieID = (String) kategc.getSelectedItem();
f.Parkplatz = (String) parkc.getSelectedItem();
f.Stellplatz = (String) stellc.getSelectedItem();
f.Status = "frei";
f.Schaden = "";
f.EOD = "";
}
fuhrpark.kfzdata.add(f);
System.out.println("fuhrpark.kfzdata.get(0): " + fuhrpark.kfzdata.get(0).FahrzeugID);
System.out.println("fuhrpark.kfzdata.get(1): " + fuhrpark.kfzdata.get(1).FahrzeugID); |
Hat jemand eine Ahnung, warum das nicht beim zweiten Datensatz funktioniert?