Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129

    come impostare un testo in JPasswordField

    Salve a tutti. Sto creando delle maschere grafiche e ho bisogno di un campo password, uso quindi le JPasswordField.
    Con Java 2 c'è la funzione getPassword per poter recuperare la password inserita dall'utente, ma come posso fare per impostare in tale field un testo che voglio io??

    il settext non va bene, perchè se dopo vado a riprendermi il testo del field con getPassword mi ritorna qualcosa di diverso. (getText è deprecato)

    Grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: come impostare un testo in JPasswordField

    Originariamente inviato da Mitttico
    il settext non va bene, perchè se dopo vado a riprendermi il testo del field con getPassword mi ritorna qualcosa di diverso.
    No alt. Se fai:

    pwdFld.setText("pippo");

    poi il pwdFld.getPassword() restituisce un corretto array di char equivalente a {'p', 'i', 'p', 'p', 'o'}

    Se tu "stampi" direttamente l'array ritornato es. System.out.println(pwdFld.getPassword()) allora no, è poco utile, ma semplicemente perché in generale gli array non ridefiniscono il toString() e quindi resta quello di Object che fornisce una stringa in formato particolare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129
    Il fatto che a me serve salvarlo di volta in volta in variabili..come posso fare?

    Io ho una password di default che salvo in una variabile (password) e successivamente inserisco con settext all'interno della mi JPasswordField.

    Ora, quando l'utente dà l'ok, vorrei fare un confronto tra quella di default e quella appena inserita:

    codice:
    char[] psw = password1.getPassword(); 		System.out.println(psw.equals(password)); 	//Stampa false anche se in teoria non tocco nulla	
    if(psw.equals(password) == false){

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Mitttico
    codice:
    char[] psw = password1.getPassword(); 		System.out.println(psw.equals(password)); 	//Stampa false anche se in teoria non tocco nulla	
    if(psw.equals(password) == false){
    No non ci siamo e tra l'altro sono questioni basilari!

    Gli array sono oggetti, ma per come sono implementati non ridefiniscono toString() e nemmeno equals(). Restano le implementazioni in Object dove equals() si basa solo sulla "identità" degli oggetti.

    codice:
    char[] a1 = { 'a', 'b' };
    char[] a2 = { 'a', 'b' };
    System.out.println(a1.equals(a2));    // SEMPRE false, sono oggetti differenti
    Dall'array char[] puoi banalmente ottenere un String usando uno degli appositi costruttori di String oppure puoi usare equals() di java.util.Arrays che compara 2 char[] (chiaramente se hai un String devi ottenerne il char[]).

    Fallo nel "verso" che vuoi, ma non come pensavi finora: un_array_char equals una_string o viceversa. Non è utile così.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.