Hallo,
Ich habe hier 2 Beispiele und frage mich wieso meine methode immer false zurück gibt ....
Es gibt ein JField, für den Namen und ein JPasswortField für's Passwort!
Das Kommentierte überlesen das waren andere Versuche!
Den ersten if-teil könnt ihr auch ignorieren der ist für einen speziellen adminaccount!
Zum groben ablauf:
-Importiere Daten-Arraylist (mit gespeicherten Daten-Objekten und name, passwort)
-Verwandle passwort in ein char[]
-Vergleiche das char[] mit dem übergebenen Methodenargument und setzte richtig = true, falls übereinstimmung
-Wenn richtig == true und Vergleiche inputName und .getName(), break
-Wenn nicht richtig == false und ab in die nächste schleife!
Die Methode datenVergleichen in der Klasse Verwalter
Wieso gibt er mir immer "Falsche Daten ....." aus bzw, wieso liefert die Methode im false?
Wenn ich das ganze ohne den zusatz von - verlgeiche name - mache funktioniert es einwandfrei!
Danke Luk :noe:
Ich habe hier 2 Beispiele und frage mich wieso meine methode immer false zurück gibt ....
Es gibt ein JField, für den Namen und ein JPasswortField für's Passwort!
Das Kommentierte überlesen das waren andere Versuche!
Den ersten if-teil könnt ihr auch ignorieren der ist für einen speziellen adminaccount!
Zum groben ablauf:
-Importiere Daten-Arraylist (mit gespeicherten Daten-Objekten und name, passwort)
-Verwandle passwort in ein char[]
-Vergleiche das char[] mit dem übergebenen Methodenargument und setzte richtig = true, falls übereinstimmung
-Wenn richtig == true und Vergleiche inputName und .getName(), break
-Wenn nicht richtig == false und ab in die nächste schleife!
Java:
public void actionPerformed (ActionEvent ev) {
walter = new Verwalter();
if (nameField.getText().equals("admin") &&
walter.adminVergleichen(keyField.getPassword()) == true) {
mainFrame.dispose();
adminErstellen();
}
else {
//walter.datenVergleichen(nameField.getText(), keyField.getPassword());
if (walter.datenVergleichen(nameField.getText(), keyField.getPassword()) == true) {
anzeigeLabel.setText("Erfolg!");
//walter.setRichtig(false);
}
else {
anzeigeLabel.setText("Falche Daten, überprüfen Sie die Eingabe!");
}
}
}
Die Methode datenVergleichen in der Klasse Verwalter
Java:
public boolean /**void */ datenVergleichen (String inputName, char[] key) {
char[] datenKey;
//imputName = name;
boolean richtig = false;
try {
FileInputStream meinIStream2 = new FileInputStream("meineArrayList.sx");
ObjectInputStream ips2 = new ObjectInputStream(meinIStream2);
Object obj2 = ips2.readObject();
ArrayList<Daten> datenArrayList = (ArrayList<Daten>) obj2;
ips2.close();
//Neue Array-schleife!
for (Daten ak : datenArrayList) {
//datenKey = new char[ak.getPasswort().length()]
datenKey = ak.getPasswort().toCharArray();
richtig = Arrays.equals(datenKey, key);
if (inputName == ak.getName() && richtig == true) {
break;
}
else {
richtig = false;
}
}
} catch (Exception ex) {
System.out.println("EXCEPTION3");
}
return richtig;
}
Wieso gibt er mir immer "Falsche Daten ....." aus bzw, wieso liefert die Methode im false?
Wenn ich das ganze ohne den zusatz von - verlgeiche name - mache funktioniert es einwandfrei!
Danke Luk :noe: