Comparar jPassword com uma string denominada (ajudem por favor)..[RESOLVIDO]

10 respostas
milarflores

Galera eu quero que o jPassword seja comparada a string mais eu não consiguo fazer isso
já tente getText() getPasswod() metodo equals e nada.
por favor algum mim ajuda

package Apresentacao;
import javax.swing.JOptionPane;

/**
 *
 * @author Milar Flores
 */
public class WelcomeLogin extends javax.swing.JFrame {

    TelaInicial TI = new TelaInicial();
   
    public void boasvindas() {
        JOptionPane.showMessageDialog(null, "         SEJA BEM VINDO");
    }

    public void explicaLogin() {
        JOptionPane.showMessageDialog(null, "Informe seu nome de usuário e senha, na poxima janela.");
    }

    public void verificaComponentes() {
        boolean aux = false;
        if (this.jTUsuario.getText().equals("")) {
            aux = true;
        } else if (this.jPSenha.getText().equals("")) {
            aux = true;
        }
        if (aux == true) {
            JOptionPane.showMessageDialog(null, "Por Favor insira o usuário juntamente a senha.");
        }
    }

    public void verificaUsuario() {
        boolean aux = false;
        boolean aux2 = false;
        if  (this.jTUsuario.getText().equals("amanda")) {
            aux = true;
        }
         else if (this.jPSenha.getText().equals("milarfloresflore")) {
            aux2 = true;
        }
        if (aux == false && aux2 == false) {
            JOptionPane.showMessageDialog(null, "Usuário ou senha incorretos.");
        }
        if (aux == true && aux2 == true) {
            this.TI.setVisible(true);
        }
    }

10 Respostas

M

Já tentou assim:

if ("senhaquevocedeseja".equals(new String(jPSenha.getPassword()))) {
// é igual
}
renamed
tenta esse:
String umValor = "abc";
		char[] c = umValor.toCharArray();
		char[] s = senha.getPassword();
		
		if (Arrays.equals(c, s)){
			System.out.println("Iguais");
		} else {
			System.out.println("Diferentes");
		}
milarflores

Mano desse jeito aki não roda

if ("mandinha4555".equals(new String(this.jPSenha.getPassword()))) { aux2 = true; }

milarflores
ainda vou testar esse aki é por que eu sou novato na area e demoro um pouco pra entender as opiniões da galera vlw por tudo
String umValor = "abc";  
        char[] c = umValor.toCharArray();  
        char[] s = senha.getPassword();  
          
        if (Arrays.equals(c, s)){  
            System.out.println("Iguais");  
        } else {  
            System.out.println("Diferentes");  
        }
renamed

Código comentado!

//Crio uma string qualquer String umValor = "abc"; //Transformo essa string num vetor de char char[] c = umValor.toCharArray(); //Pego a senha no jPasswordField char[] s = senha.getPassword(); //Utilizo o método equals da classe Arrays que vai verificar // se ambos vetores de caracteres são iguais if (Arrays.equals(c, s)){ System.out.println("Iguais"); } else { System.out.println("Diferentes"); }

M

milarflores:
Mano desse jeito aki não roda

if ("mandinha4555".equals(new String(this.jPSenha.getPassword()))) { aux2 = true; }


Como assim não roda? Porque compila. Apesar disso, parece que comparar os arrays de char é melhor.

renamed
marcobiscaro2112:
milarflores:
Mano desse jeito aki não roda
if ("mandinha4555".equals(new String(this.jPSenha.getPassword()))) {
            aux2 = true;
        }
Como assim não roda? Porque compila. Apesar disso, parece que comparar os arrays de char é melhor.

O problema é que o Java transforma vetores em strings totalmente estranhas, veja:

public static void main(String[]args)throws Exception{		
		char[] abc = {'a', 'b', 'c'};
		int[] num = {1, 2, 3};
		
		String abcString = abc.toString();
		String abcInt = num.toString();
		
		System.out.println(abcString);
		System.out.println(abcInt);
	}

Saída: [C@1bab50a e [I@1bab50a :wink:

M

Mas o método usado não é o char[].toString() e sim o new String(char[]).

Poneis123

Tem 2 formas pra você pegar o valor do JPasswordField e transformar em String:

uma é da forma que disse o marcobiscaro2112:

if("marcelo".equals(new String(password.getPassword())))

Ou então se vc não quer criar uma String ou não entende muito bem esse new String(char[]) vc pode fazer o seguinte:

password.selectAll(); //aqui vc faz com que o password seja selecionado if("marcelo".equals(password.getSelectedText())) //aqui vc pega o texto selecionado

Abrs

milarflores
Galera vlw por tudo mais decobrir o problema sem precisar alterar meu método de fazer o método...
package Apresentacao;
import javax.swing.JOptionPane;

/**
 *
 * @author Milar Flores
 */
public class WelcomeLogin extends javax.swing.JFrame {

    TelaInicial TI = new TelaInicial();
   
    public void boasvindas() {
        JOptionPane.showMessageDialog(null, "         SEJA BEM VINDO");
    }

    public void explicaLogin() {
        JOptionPane.showMessageDialog(null, "Informe seu nome de usuário e senha, na poxima janela.");
    }

    public void verificaComponentes() {
        boolean aux = false;
        if (this.jTUsuario.getText().equals("")) {
            aux = true;
        } else if (this.jPSenha.getText().equals("")) {
            aux = true;
        }
        if (aux == true) {
            JOptionPane.showMessageDialog(null, "Por Favor insira o usuário juntamente a senha.");
        }
    }

    public void verificaUsuario() {
        boolean aux = false;
        boolean aux2 = false;

        if  (this.jTUsuario.getText().equals("Milar")) {
            aux = true;
        } 
        /* aki eu tava colocando um else antes do if não sei o quando tava dando errado quando complilava mais aí eu tirei o else iaí pegou tranquilo*/
        if (this.jPSenha.getText().equals("milar")){
            aux2 = true;
        }
        if (aux == false || aux2 == false) {
            JOptionPane.showMessageDialog(null, "Usuário ou senha incorretos.");
        }
        if (aux == true && aux2 == true) {
            this.TI.setVisible(true);
        }
    }

Galera vlw vlw por tudo

Criado 17 de dezembro de 2009
Ultima resposta 17 de dez. de 2009
Respostas 10
Participantes 4