Ich mache ein Programm mit einer einfachen GUI, wo der Benutzer die Anmeldung vor dem Start des Programms tun müssen. Ich möchte den Benutzernamen und das Passwort speichern, und wenn der Benutzer das Kästchen "Remember me" aktiviert, möchte ich, dass er beim nächsten Mal keine Daten eingeben muss. Ich habe versucht, mit Java-Einstellungen API zu tun, auf diese Weise:Java speichert Benutzereinstellungen
private Preferences prefs = Preferences.userRoot().node(this.getClass().getName());
prefs.put("codCliente", txtCodCliente.getText());
prefs.put("username", txtUsername.getText());
prefs.put("password", DigestUtils.md5Hex(String.valueOf(txtPassword.getPassword())));
Aber wenn ich die App schließen und wieder öffnen, wenn ich den Inhalt von Variablen zu drucken, gibt es „Null-Taste“ Nullpointer.
Ich habe versucht, sie in einer .properties-Datei zu speichern, aber ich möchte nicht jedes Mal die gesamte Datei überschreiben, und wenn ich versuche, Apache Commons-Konfiguration mit setProperty zu verwenden, kann ich den Wert nicht setzen die Variablen.
Welches ist der beste Weg, um diese Art von Daten zu speichern?
Danke euch allen.
Sie können einen Zeitstempel der zuweisen Wenn sie sich an mich erinnern, weisen Sie einfach eine Dauer von 1 Tag zu, bis sie abläuft. – piyush121
Anstelle von userRoot(). Node (this.getClass(). GetName()) sollten Sie 'Preferences.userNodeForPackage (MyClass.class)' verwenden. Verwenden Sie immer ein Klassenliteral (wie 'MyClass.class') anstelle von getClass(), damit die Einstellungen nicht an einem Ort gespeichert werden, den Sie nicht erwartet haben. – VGR
@ piyush121 das Problem ist, dass ich nicht in der Lage bin, Daten zu erhalten, wenn ich die Anwendung schließe. – luca89pe