Ocultar Senha e código

9 respostas
Djheison

Galera...

Como faço para senha do tipo inteiro e código de segurança em outro campo?
tem como usar JOptionPane.ShowInputDialog e JPasswordField?
E como faço pra negar algo em que foi comparado usando equals
exemplo:

if(senha.equals(senhaUsuario))... preciso dizer:
SE SENHA NÃO FOR IGUAL A SENHA QUE O USUÁRIO DIGITOU. Como faço?

por favor, preciso de um exemplo
Segue abaixo parte do código:

String codigo="";//String que recebe codigo digitado pelo usuario
			
			senha =Integer.parseInt(JOptionPane.showInputDialog(msg+" Digite sua senha de 6 Dígitos"));//Variavel "senha" recebendo entrada do usuário para acesso ao sistema
		    codigo = JOptionPane.showInputDialog("Digite as três letras de segurança");
		    a++;//Variavel que é implementada com 1 a cada loop se a senha for digitada errada
		    
            if(senha==c1.getSenha()){//Se a senha digitada pelo usuario for igual a senha gravada no sistema
		        c1.setSaldo(453);
            	c1.setNomeCliente("Djheison Fernando Araujo Silva");//Metodo setNome com valor gravado
		        c1.setCpf ("[CPF removido]");//Metod setCpf com valor gravado
		        c1.setTelefone ("8477-9545");//Metodo setTelefone com valor gravado 
		        c1.setEndereco("Colonia Agrícola Samambaia Rua 04 Ch. 19 Cs. 20");
		
		        opcao = Integer.parseInt(JOptionPane.showInputDialog("\t..:BANCO DO BRASIL:..\n\n1 - DEPOSITAR     2 - SACAR"));//variavel "opcao" recebe opção de operação do usuário
		        if(opcao==1){ //se "opcao" igual a 1 - Deposito
			        c1.setCredito( Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//setCredito recebe o valor do depósito
			        JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\nVALOR DO DEPÓSITO \nR$ "+c1.credito);//Mensagem que mostra valor do deposito
		        }
		        if(opcao==2){ //se "opcao" igual a 2
			        c1.setDebito(Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//setDebito recebe o valor do saque   
			        JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\nVALOR DO SAQUE \nR$"+c1.debito);//Mensagem que mostra valor do saque
		        }
		        JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\n\n"+c1.getDadosConta());//Imprime dados da conta 
            }if((senha==c1.getSenha()&& c1.getCodigo().equalsIgnoreCase(codigo))==false){
            	msg= "Senha ou Codigo inválido";    
            }
            
        }a++;
		        if(a>=3){
		    	    JOptionPane.showMessageDialog(null,"Senha Bloqueada");//Se a senha for digitada errada 3 vezes: SENHA BLOQUEADA	
		        }

Favor mostrar-me como fazer para nos campos de digitação de senha e de código ocultá-los no momento da
digitação usando a caixa de diagolo de JOptionPane e depois como compará-los com senha e codigo ja gravados no sistema.
Desde já muito obrigado
Aguardo!

9 Respostas

Ricna

Djheison:
Galera…
… como faço pra negar algo em que foi comparado usando equals
exemplo:
if(senha.equals(senhaUsuario))… preciso dizer:
SE SENHA NÃO FOR IGUAL A SENHA QUE O USUÁRIO DIGITOU. Como faço?

if(!senha.equals(senhaUsuario))

Operador " ! "

jessetsilva

As senhas gravadas que devem ser comparadas estão onde exatamente, num banco de dados? num arquivo? numa String? mostra pra gente onde elas estão armazenadas pra podermos te dar uma idéia do que fazer.

Djheison

A condição é se o codigo e a senha não forem corretos. Coloquei assim mas não está dando certo:

while(a<3 && senha != c1.getSenha() && (!codigo.equals(codigo))){//Condição para que o usuário permaneça digitando senha e codigo enquanto eles forem digitados errados até 3 vezes

Está dando erro lógico

Vê se você consegue definir o erro.
Obrigado.

Djheison
package Teste; //pacote teste
import javax.swing.*;// importação do pacote da parte gráfica do sistema

public class Banco{ //Class Principal Banco
	public static void main(String[] args){//Metodo principal
		int a=0; //variavel "contador"	    
    int opcaoConta = Integer.parseInt(JOptionPane.showInputDialog("1 - CONTA     2 - CONTA ESPECIAL\n\n\n"));//Mensagem para opção de conta
	if(opcaoConta==1){//Se opcaoConta for igual a 1
	    Conta c1 = new Conta();//É contruido um objeto c1 da classe Conta
	    
	    c1.setNomeCliente("Djheison Fernando Araujo Silva");//Metodo setNome com valor gravado
        c1.setCpf ("[CPF removido]");//Metod setCpf com valor gravado
        c1.setTelefone ("8477-9545");//Metodo setTelefone com valor gravado 
        c1.setEndereco("Colonia Agrícola Samambaia Rua 04 Ch. 19 Cs. 20");
	    c1.setSaldo(453);  
	    c1.setSenha(102030);//O Metodo setSenha tem valor gravado
	    c1.setCodigo("GVC");//O Método setCodigo tem valor gravado
	    
		int opcao=0; //variável para escolha de ação na conta
		int senha=0; //Variavel que recebe a senha digitada pelo usuário
		String msg="";//Variavel que recebe a mensagem "Cartão Bloqueado, caso a senha seja digitada errada 3 vezes
		String codigo="";//String que recebe codigo digitado pelo usuario
		
		while(a<3 && senha != c1.getSenha() && (!codigo.equals(codigo))){//Condição para que o usuário digite a senha
			
			senha =Integer.parseInt(JOptionPane.showInputDialog(msg+" Digite sua senha de 6 Dígitos"));//Variavel "senha" recebendo entrada do usuário para acesso ao sistema
		    codigo = JOptionPane.showInputDialog("Digite as três letras de segurança");
		   //OBSERVAÇÃO a++;Variavel que é implementada com 1 a cada loop se a senha for digitada errada
		    
		}   
            if(senha==c1.getSenha()&& codigo.equalsIgnoreCase(c1.getCodigo())){//Se a senha digitada pelo usuario for igual a senha gravada no sistema
		       
		        opcao = Integer.parseInt(JOptionPane.showInputDialog("\t..:BANCO DO BRASIL:..\n\n1 - DEPOSITAR     2 - SACAR"));//variavel "opcao" recebe opção de operação do usuário
		        if(opcao==1){ //se "opcao" igual a 1 - Deposito
			        c1.setCredito( Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//setCredito recebe o valor do depósito
			        JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\nVALOR DO DEPÓSITO \nR$ "+c1.credito);//Mensagem que mostra valor do deposito
		        }
		        if(opcao==2){ //se "opcao" igual a 2
			        c1.setDebito(Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//setDebito recebe o valor do saque   
			        JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\nVALOR DO SAQUE \nR$"+c1.debito);//Mensagem que mostra valor do saque
		        }
		        JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\n\n"+c1.getDadosConta());//Imprime dados da conta 
            }else{
            	msg= "Senha ou Codigo inválido";    
            }
        
		        if(a>=3){
		    	    JOptionPane.showMessageDialog(null,"Senha Bloqueada");//Se a senha for digitada errada 3 vezes: SENHA BLOQUEADA	
		        }
		        	        
     }  
    if(opcaoConta==2){//se a opção para conta for '2'
		
		ContaEspecial ce1 = new ContaEspecial();//é criado um objeto da conta especial
		ce1.setSenha(203040);//Metodo setSenha com valor gravado
        int opcao; //varialvel opcao
        int senha=0;//variavel que recebe a senha digitada pelo usuário
        //int a=0; //variavel "contador"
		String msg="";//Variavel que recebe a mensagem "Cartão Bloqueado, caso a senha seja digitada errada 3 vezes
        while(a<3& senha!=ce1.getSenha()){//Condição para que o usuário digite a senha
		    senha =Integer.parseInt(JOptionPane.showInputDialog(msg+" Digite sua senha de 6 Dígitos"));//Variavel "senha" recebendo entrada do usuário para acesso ao sistema
		    a++;//Variavel que é implementada com 1 a cada loop se a senha for digitada errada
		    if(senha!=ce1.getSenha()){//Condição: Se a senha for diferente da senha gravada no sistema
	            msg="Senha Inválida.";//A variável "msg" recebe "Senha inválida"
		    }
            if(senha==ce1.getSenha()){//Se a senha digitada pelo usuario for igual a senha gravada no sistema
                ce1.setLimite(600); //metodo setLimite com valor gravado 
                ce1.setNomeCliente("Alecio de Oliveira Silva");//Metodo setNomeCliente recebe valor
                ce1.setCpf("[CPF removido]");//Metodo setCpf recebe valor
                ce1.setTelefone("8504-5016");//Metodo setTelefone recebe valor
                ce1.setEndereco("Colonia Agrícola Samambaia Ch. 19 Cs. 20");//metodo setEndereco com valor gravado
		
            opcao = Integer.parseInt(JOptionPane.showInputDialog("1 - DEPOSITAR     2 - SACAR    3 - SALDO"));//variavel "opcao" recebe opção de operação do usuário
		        if(opcao==1){ //se "opcao" igual a 1 - Deposito
	                ce1.setCredito(Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//metodo setCredito recebe valor
	                JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\nVALOR DO DEPÓSITO R$\n"+ce1.credito);//Mensagem que mostra valor do deposito
		        }
		        if(opcao==2){ //se "opcao" igual a 2
			        ce1.setDebito(Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//imprime a mensagem para que o usuario digite o valor e setDebito recebe este v
			        JOptionPane.showMessageDialog(null,"\t..:BANCO DO BRASIL:..\n\nVALOR DO SAQUE R$\n"+ce1.debito);//Imprime o valor do saque
		        } 
		            JOptionPane.showMessageDialog(null,ce1.getDadosContaCliente());//Imprime dados da conta  
            }
           	
        }
        if(a>=3){//Se a senha for digitada incorretamente 3 vezes
    	    JOptionPane.showMessageDialog(null,"Senha Bloqueada");//Imprime a mensagem "senha bloqueada
        }

    }
	


}
	
}

Aí está a parte do código para que você tenha uma idéia...
Eu estou tentando fazer alguns ajustes
algumas coisas podem estar meio bagunçadas mas o mais importante
é enternder aquele processo
Muito obrigado pelo apoio

jessetsilva

se for tudo String experimenta usar

!senha.equals(c1.getSenha())

ao invés de

senha != c1.getSenha()

não se deve comparar Strings usando == ou !=, pois pode dar errado.

da uma lida aqui: http://www.guj.com.br/java.tutorial.artigo.103.1.guj

é bem interessante.

Djheison

a senha é do tipo inteiro está especificado no codigo
apenas o codigo é do tipo String

O

brother tem outras formas de fazer isso, mas…
o erro tá aqui:
while (a < 3 && senha != c1.getSenha() && (![color=red]codigo[/color].equals([color=red]codigo[/color])))

corrigido:

while (a < 3 && senha != c1.getSenha() && (!codigo.equals(c1.getCodigo())))
lgmhorus
!codigo.equals(codigo)

isso é sempre falso, pois você está comparando o código a ele mesmo. Por isso não funciona.

Djheison

Obrigado!
Pura falta de atenção… Enquanto eu esperava a resposta
eu até conseguir ver este erro
Obrigado pelo apoio
t+

Criado 16 de julho de 2008
Ultima resposta 16 de jul. de 2008
Respostas 9
Participantes 5