Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Aula 10 JMenuBar / JMenu JPasswordField Em formulários que necessitam de caixa de texto para digitar senhas, podemos aplicar o componente definido pela classe JPasswordField. O conteúdo digitado na caixa de texto gerado pelo componente da classe JPasswordField não é apresentado ao usuário. JPasswordField (uma subclasse direta de JTextField), você pode suprimir a exibição de entrada. Cada caracter introduzido pode ser substituído por um caractere de eco. Isto permite a entrada confidencial para senhas, por exemplo. Por padrão, o caracter eco é o asterisco *. Exemplo 1: package programas; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; public class ExemploPassword1 extends JFrame { private JLabel lblUsuario; private JLabel lblSenha; private JTextField txtUsuario; private JButton btLogin; 2 private JPasswordField password; static String SENHA = "123"; String senhaDigitada = null; ExemploPassword1() { super("Testando Password"); } public void montaTela() { Container c = getContentPane(); setLayout(null); lblUsuario = new JLabel("Usuário: "); lblUsuario.setBounds(50, 50, 65, 25); txtUsuario = new JTextField(); txtUsuario.setBounds(110, 50, 70, 25); lblSenha = new JLabel("Senha: "); lblSenha.setBounds(50, 80, 65, 25); btLogin = new JButton("Login"); btLogin.setBounds(130, 130, 65, 25); password = new JPasswordField(); password.setEchoChar('.'); password.setBounds(110, 80, 100, 25); c.add(lblUsuario); c.add(txtUsuario); c.add(lblSenha); c.add(password); c.add(btLogin); btLogin.addActionListener(new ValidaSenha()); setSize(350, 250); setVisible(true); setLocationRelativeTo(null); // centraliza a janela na tela setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public class ValidaSenha implements ActionListener { @Override public void actionPerformed(ActionEvent e) { senhaDigitada = new String(password.getPassword()); if (SENHA.equals(senhaDigitada)) { JOptionPane.showMessageDialog(null, "Senha Correta!"); } else { JOptionPane.showMessageDialog(null, "Senha Incorreta!"); } } } public static void main(String[] args) { ExemploPassword1 xx = new ExemploPassword1(); xx.montaTela(); } } 3 Exemplo 2: package programas; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; public class ExemploPassword2 extends JFrame { private JLabel lblSistemaFinanceiro; private JLabel lblUsuario; 4 private JLabel lblSenha; private JTextField txtUsuario; private JButton btLogin; private JPasswordField password; static String SENHA = "123"; String senhaDigitada = null; ExemploPassword2() { super("Testando Password"); } public void montaTelaSenha() { Container c = getContentPane(); setLayout(null); lblSistemaFinanceiro = new JLabel("Sistema Financeiro"); lblSistemaFinanceiro.setBounds(90, 5, 150, 60); lblUsuario = new JLabel("Usuário: "); lblUsuario.setBounds(50, 50, 65, 25); txtUsuario = new JTextField(); txtUsuario.setBounds(110, 50, 70, 25); lblSenha = new JLabel("Senha: "); lblSenha.setBounds(50, 80, 65, 25); btLogin = new JButton("Login"); btLogin.setBounds(130, 130, 65, 25); password = new JPasswordField(); password.setEchoChar('*'); password.setBounds(110, 80, 100, 25); c.add(lblSistemaFinanceiro); c.add(lblUsuario); c.add(txtUsuario); c.add(lblSenha); c.add(password); c.add(btLogin); btLogin.addActionListener(new TrataSenha()); setSize(350, 250); setVisible(true); setLocationRelativeTo(null); // centraliza a janela na tela setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public class TrataSenha implements ActionListener { @Override public void actionPerformed(ActionEvent e) { senhaDigitada = new String(password.getPassword()); if (SENHA.equals(senhaDigitada)) { SistemaFinanceiro sf = new SistemaFinanceiro(); sf.montaTelaMenu(); } else { JOptionPane.showMessageDialog(null, "Senha Incorreta!"); } 5 } } public static void main(String[] args) { ExemploPassword2 exe = new ExemploPassword2(); exe.montaTelaSenha(); } } package programas; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JSeparator; public class SistemaFinanceiro extends JFrame { JMenuBar menuBar; JMenu menuCliente; JMenuItem menuItemClienteIncluir; JMenuItem menuItemClienteSair; JSeparator separador; public SistemaFinanceiro() { super("Sistema Finaceiro"); //setSize(300,200); setVisible(true); setExtendedState(JFrame.MAXIMIZED_BOTH); // Executa maximizado setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void montaTelaMenu() { menuBar = new JMenuBar(); setJMenuBar(menuBar); separador = new JSeparator(); menuCliente = new JMenu("Cliente"); menuItemClienteIncluir = new JMenuItem("Incluir"); menuItemClienteSair = new JMenuItem("Sair"); menuBar.add(menuCliente); menuCliente.add(menuItemClienteIncluir); menuCliente.add(separador); menuCliente.add(menuItemClienteSair); menuItemClienteSair.addActionListener(new Sair()); } public class Sair implements ActionListener { @Override 6 public void actionPerformed(ActionEvent e) { System.exit(0); setDefaultCloseOperation(EXIT_ON_CLOSE); } } public static void main(String[] args) { SistemaFinanceiro exemplo = new SistemaFinanceiro(); exemplo.montaTelaMenu(); } } Exemplo 3: package programas; import javax.swing.JOptionPane; public class ExemploPassword3 { public float vlrSaque; public void pegaDadosVenda() { vlrSaque = (Float.parseFloat(JOptionPane.showInputDialog(null,"Digite Valor do Saque: "))); ValidaSenha val = new ValidaSenha(); val.validadorDeSenha(); JOptionPane.showMessageDialog(null, "Saque Efetuado! " + vlrSaque); } public static void main(String[] args) { ExemploPassword3 v = new ExemploPassword3(); v.pegaDadosVenda(); } } 7 package programas; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; public class ValidaSenha { private JPanel painel; private JLabel lblLabel; private JPasswordField password; static String SENHA = "123"; String senhaDigitada = null; ValidaSenha() { } public void validadorDeSenha() { // Cria campo onde o usuario entra com a senha password = new JPasswordField(10); password.setEchoChar('#'); // Cria um rótulo para o campo lblLabel = new JLabel("Digite a Senha:"); // Coloca o rótulo e a caixa de entrada numa JPanel: painel = new JPanel(); painel.add(lblLabel); painel.add(password); // Mostra o rótulo e a caixa de entrada de password para o usuario fornecer a senha: JOptionPane.showMessageDialog(null, painel, "Valida Senha", JOptionPane.PLAIN_MESSAGE); senhaDigitada = password.getText(); int ctrlSenhaDigitada = 0; while (ctrlSenhaDigitada == 0) { if (SENHA.equals(senhaDigitada)) { ctrlSenhaDigitada = 1; } else { JOptionPane.showMessageDialog(null, "Senha Incorreta!"); password.setText(""); JOptionPane.showMessageDialog(null, painel, "Valida Senha", JOptionPane.PLAIN_MESSAGE); senhaDigitada = password.getText(); } } } } 8 Exercícios: 1 – De acordo com o exemplo 3, implementar uma transferência para uma conta poupança e a impressão de extrato. Todos deverão ser executados somente com a senha validada.
Compartilhar