2016-04-09 15 views
0

Kullanıcı, programı kullanmaya başlamadan önce oturum açma işlemini yapması gereken basit bir GUI ile bir program yapıyorum. Kullanıcı adı ve şifreyi kaydetmek istiyorum ve eğer kullanıcı "Beni hatırla" onay kutusunu işaretlerse, bir dahaki sefere veri girmesine gerek olmadığını istiyorum. Ben Java Tercihler API ile yapıyor bu yolu denedim:Java kullanıcı tercihlerini kaydetme

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()))); 

Ama kapatıp i değişkenlerin içeriği yazdırmak eğer Uygulamayı yeniden halinde bunun "Boş tuşu" NullPointerException döndürür.

Bir .properties dosyasında bunları kaydetmeye çalıştım, ancak tüm dosya üzerine yazmak istemiyorum ve eğer apache commons yapılandırmasını setProperty ile kullanmaya çalışırsam, bu değeri koyamıyorum değişkenler.

Bu tür verileri depolamanın en iyi yolu hangisidir?

Hepinize teşekkürler.

o veri girmek için o ALIŞKANLIK METİN INTO bir şey koymak anlamına gelir dahaki sefere

gerekmez:

+0

Sen hiç bir zaman damgası atayabilirsiniz kullanıcı giriş yaptıklarında. Beni hatırlarsa, hatırlamanız için 1 gün gibi bir süre geçene kadar bekleyin. – piyush121

+0

userRoot(). Node (this.getClass(). GetName()) yerine, 'Preferences.userNodeForPackage (MyClass.class)' kullanılmalıdır. Her zaman getClass() yerine bir sınıf edebi ('MyClass.class' gibi) kullanın, bu nedenle miras tercihlerin beklemediğiniz bir yerde saklanmasına neden olmaz. – VGR

+0

@ piyush121 problemi, uygulamayı kapattığımda veriyi koruyamıyorum. – luca89pe

cevap

0

Evet tercihleri ​​sorun olduğunu, gerçekten kolay ve bunu yapmanın iyi bir yoludur ALANLAR. i kapatıp i değişkenlerin içeriği yazdırmak eğer Uygulamayı yeniden eğer

Ama, "Boş tuşu" NullPointerException döndürür.

Ne umudunuz? Uygulamasına tekrar başladığında bu NULL değerlerini tekrar tercihlere koydunuz.

Sorun tasarımınızda onay kutusu

uygulama starts-> okuma tercihi devlet> {şey} else {kimlik bilgilerini yeniden okumasını} -> gösteri giriş ui, kullanıcı kimlik bilgilerini girer -> { tercihleri ​​olan kişileri karşılaştırmak} DONT STORE ANYTHING, neden uygulamayı başlattığınız her seferinde kullanıcının ne zaman giriş yapmaya çalıştığını depoladığınızı çok mu yüklüyorsunuz?

Yalnızca kullanıcı adıyla kimlik bilgilerini depolar, şifrelemeyi kullanır ve verilerinizi hem ad hem de parola için saklarsınız.

Sorunuzda, kod örneği ile doğrudan size yardımcı olacak yeterli kod yok, bu bilgileri kodunuzda okuduğunuz tasarımla ilgili sorunlarınız mı var? Neden bu kısmı burada yayınlamıyorsun? Sadece bize bir şeyler sakladığınızı gösterirsiniz, tamam, size yardım etmeye çalışan kişilere yararsızdır.

Hepinize yolu/vb tercihlerine şey yazmak okurken ile Otur kod yazmadan durdurmak ve uygulama başlatma ve giriş sürecinin akış şeması yourslef yazmak için tavsiye

İlgili konular