
Zitat von
Anfänger86
ahhhh, nein ich füge doch überhaupt nix ein.. da steht nix mit insertElementAt.... überhaupt nix.. ich lösche doch nur raus wenn mit ja bestätigt wird...
Tut mir Leid, aber du rufst die removeElementAt()-Methode 2x auf.
Die, welche ich dr gepostet habe, ist dein 2. Aufruf, welcher sich bei dir in der Methode eintragBearbeiten() wiederfindet. Ich bin davon ausgegangen, dass es die ist... Aber im Endeffekt ist es bei beiden Aufrufen das gleiche Problem! Von dem insertElementAt() mal abgesehen. Du kommst bei beiden Möglichkeiten die Exception, wenn indexOf() -1 zurückgibt, so wie dein Code aussah, auch wenn es bei dir bisher nur an der einen Stelle aufgetreten ist.
PS.: Gut gemeinter Rat von mir, man kann auch zu viel Kommentieren. Zu viele Kommentare machen Code schnell unübersichtlich.
Geändert von HonniCilest (28.06.10 um 21:42 Uhr)
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
Ach herje, Pflicht? Kommentieren ist gut, aber nicht jede Zeile... Sowas sollte man anzeigen 
Ich habe aus langeweile mal ein wenig am Code herumgebaut 
Falls du Lust hast, kannst du es ja mal mit deinem vergleichen, eventuell Dinge übernehmen oder auch in Frage stellen 
Natürlich habe ich für mich alle Kommentare entfernt, da ich den Code, so wie er ist, sehr verständlich finde! Soll ein Lob an dich sein 
Die Routine einen Eintrag zu finden habe ich in eine Funktion ausgelagert, da es nicht sinnig ist den gleichen Code mehrmals zu erfinden. Dies könnte man sicherlich auch noch mit anderen Routinen tun...
Eintrag finden schließt bereits aus, dass indexOf -1 werden kann, wodurch die if-Abfrage wegfällt.
Die Menü-Aufrufe sind weggefallen, sowie fertig im Menü selbst.
Jede Funktion erfordert eine Entereingabe um ins Menü zurückzukehren.
Eine Handvoll Konsolenausgaben wurden editiert, gelöscht oder hinzugefügt.
usw.
Code 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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
| import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.Vector;
public class Telefonliste {
public BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
public Vector<Telefonlisteneintrag> telefonliste;
public Telefonliste() {
telefonliste = new Vector<Telefonlisteneintrag>();
telefonliste.addElement(new Telefonlisteneintrag("Tina Müller", "0451/598547"));
telefonliste.addElement(new Telefonlisteneintrag("Klaus Fuchs", "0587/45796"));
telefonliste.addElement(new Telefonlisteneintrag("Silke Rommel", "0587/578512"));
telefonliste.addElement(new Telefonlisteneintrag("Franz Kluftlocher", "0785/98745"));
}
public Telefonlisteneintrag findeEintrag(String name) {
for (Telefonlisteneintrag teleEintrag : telefonliste) {
if(teleEintrag.name.equals(name)){
return teleEintrag;
}
}
return null;
}
public Telefonlisteneintrag findeEintrag2(String nummer) {
for (Telefonlisteneintrag teleEintrag : telefonliste) {
if(teleEintrag.nummer.equals(nummer)){
return teleEintrag;
}
}
return null;
}
public void menü(){
while(true) {
System.out.println("\nTelefonliste: ");
System.out.println("[1] Alle Eintraege anzeigen");
System.out.println("[2] Eintrag anlegen");
System.out.println("[3] Eintrag löschen");
System.out.println("[4] Eintrag bearbeiten");
System.out.println("[5] Person suchen");
System.out.println("[6] Nummer identifizieren");
System.out.println("[0] Ende\n");
try {
String eingabe = stdin.readLine();
if (eingabe.equals("0")) System.exit(0);
else if (eingabe.equals("1")) alleAnzeigen();
else if (eingabe.equals("2")) eintragAnlegen();
else if (eingabe.equals("3")) eintragLöschen();
else if (eingabe.equals("4")) eintragBearbeiten();
else if (eingabe.equals("5")) personSuchen();
else if (eingabe.equals("6")) nummerIdentifizieren();
else System.out.println("Ungültige Eingabe.");
}
catch (IOException ex) {
System.out.println("Fehler bei der Eingabe.");
}
}
}
public void alleAnzeigen() {
if (!telefonliste.isEmpty()) {
Enumeration<Telefonlisteneintrag> num = telefonliste.elements();
while(num.hasMoreElements()) System.out.println(num.nextElement());
}
else System.out.println("Kein Eintrag vorhanden.");
System.out.println("Taste drücken, um ins Menü zurückzukehren.");
try {
stdin.readLine();
}
catch(IOException ex) {
System.out.println("Fehler bei der Eingabe.");
}
}
public void eintragAnlegen() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name = stdin.readLine();
if(name.equals("0")) return;
System.out.print("Nummer eingeben: ");
String nummer = stdin.readLine();
if(name.equals("0")) return;
telefonliste.addElement(new Telefonlisteneintrag(name, nummer));
System.out.println("Neuer Eintrag: " + telefonliste.elementAt(telefonliste.size()-1));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch(IOException ex) {
System.out.println("Fehler bei der Eingabe.");
}
}
public void eintragLöschen() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name = stdin.readLine();
if(name.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag(name);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.println("Löschen? ja/nein");
name = stdin.readLine();
if(name.equals("0")) return;
else if(name.toLowerCase().equals("ja") || name.toLowerCase().equals("j")) {
telefonliste.removeElementAt(indexW);
System.out.println("Eintrag gelöscht.");
}
else if(name.toLowerCase().equals("nein") || name.toLowerCase().equals("n")) System.out.println("Eintrag nicht gelöscht.");
else System.out.println("Ungültige Eingabe");
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println("Fehler bei Eingabe.");
}
}
public void eintragBearbeiten() {
System.out.println ("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name=stdin.readLine();
if(name.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag(name);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.print("Neuer Name: ");
name= stdin.readLine();
if(name.equals("0")) return;
System.out.print("Neue Nummer: ");
String nummer=stdin.readLine();
if(name.equals("0")) return;
telefonliste.set(indexW, new Telefonlisteneintrag(name, nummer));
System.out.println("Neuer Eintrag: " + telefonliste.elementAt(indexW));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println ("Fehler bei Eingabe.");
}
}
public void personSuchen() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name = stdin.readLine();
if(name.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag(name);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println("Fehler bei Eingabe");
}
}
public void nummerIdentifizieren() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Nummer eingeben: ");
String nummer = stdin.readLine();
if(nummer.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag2(nummer);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println("Fehler bei Eingabe.");
}
}
public static void main (String[] args) throws IOException {
new Telefonliste().menü();
}
} |
Geändert von HonniCilest (28.06.10 um 23:12 Uhr)
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.