Visual – JPassword, JOptionPane, showMessageDialog – Aspas Simples e Aspas Duplas – Java

Publicado: 2 de abril de 2014 em Java

A classe JPasswordField, uma subclasse de JTextField, fornece campos de texto especializados para a entrada de senha. Por razões de segurança, um campo de senha não mostra os caracteres que o usuário digita. Em vez disso, o campo apresenta um outro caractere, como um asterisco ‘*’. Como outra medida de segurança, um campo de senha armazena o seu valor como um array de caracteres, e não como uma string.

JOptionPane

Torna mais fácil abrir uma caixa de diálogo padrão que solicita aos usuários para um valor ou informa os de algo.

ShowMessageDialog

Diz o usuário sobre algo que aconteceu.

Aspas Simples e Aspas Duplas

Em algumas linguagens de programação usa-se aspas simples para escrever textos literais para uma variável, outras linguagens usam aspas duplas. Em algumas linguagens modernas usa-se ambos os tipos de aspas. Em Java aspas duplas significam caracteres literais no formato String, aspas simples significam caracteres literais no formato Char. No exemplo abaixo a variável contendo a senha recuperada precisa ser uma array do tipo Char, tente colocar os caracteres em aspas duplas e verá o erro: String e Char não são tipos compatíveis, aspas simples transformam os literais em tipos Char suprimindo o erro do compilador.

password

Senha

 

Exemplo:

Neste exemplo criamos uma caixa de texto especifica para manipular senhas, e usamos seus recursos de validação para imprimir uma mensagem na tela para o usuário.

Java

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;


public class Senha implements ActionListener 

{   
	// Declara Componentes
	JFrame menssagem;
	JLabel rotulo;
	JPasswordField senha;
	JButton botao;
	
	// Cria painel com componentes
	public Container criaPainel()
	{
		JPanel painel = new JPanel(new BorderLayout());
		
		rotulo = new JLabel("Insira uma senha com 8 caracteres:");
		
		senha = new JPasswordField(8);
				
		botao = new JButton("Ok");
		botao.addActionListener(this);
		
		painel.add(rotulo, BorderLayout.PAGE_START);
		painel.add(senha, BorderLayout.CENTER);
		painel.add(botao, BorderLayout.PAGE_END);
		
		painel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
					
		return painel;
	}
	
    public void actionPerformed(ActionEvent arg0) {
    	
    	// Captura ação do botão
    	if (arg0.getSource() == botao )
    	{
    		// Recupera senha do componente de senha
    		char[] psenha = senha.getPassword();
    		
    		// Verifica a senha
    		if (verificaSenha(psenha)) 
    		{
    			// Manda uma menssagem usando um componente de caixa de dialogo
    			JOptionPane.showMessageDialog(menssagem, 
    					"A senha está correta!");
    		}
    		
    		else
    		{
    			JOptionPane.showMessageDialog(menssagem, 
    					"A senha está incorreta!");
    		}
    	}
				
	}
    
    public boolean verificaSenha(char[] psenha)
    {
		
    	// Verifica Senha
    	boolean correto = true;
    	
    	// Retorna senha de alguma fonte dentro de um array
    	// Neste caso nossa senha ficticia é fixa.
    	
    	// Aspas simples indicam que os literais são do formato char e não string
    	char [] rsenha = { 'd', 'a', 'a', 'b', 'e', 'r', 't', 'o' } ;
    	
    	if (psenha.length != rsenha.length) 
    	{
    		correto = false;
    	}
    	
    	else
    	{
    		for (int i = 0; i < rsenha.length; i++)
    		{
    			if (psenha[i] != rsenha[i])
    			{
    				correto = false;
    			}
    		}
    	}
    	
    	
    	return correto;
    	
    }
	
    // Cria GUI
	public static void criaGUI()
	{
		JFrame formulario = new JFrame("DA - JPassword");
		formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Senha pass = new Senha();
		
		formulario.setContentPane(pass.criaPainel());
		
		formulario.setSize(300,130);
		formulario.setVisible(true);
	}

	// Chama GUI
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		javax.swing.SwingUtilities.invokeLater(new Runnable() {
			
			@Override
			public void run() {
				
				criaGUI();
				
			}
		});

	}

}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s