Introdução ao JPasswordField

JPasswordField é um componente Swing e um campo de entrada que facilita ao usuário digitar sua senha. Você deve ter visto esse campo ao fazer login em qualquer site como o Facebook ou o Gmail que mostre "*" ou qualquer outro caractere ao digitar sua senha na caixa de texto fornecida. JPasswordField é a mesma coisa.

Declaração de Jpasswordfield

public class JPasswordField extends JTextField

Como você pode ver, essa classe é uma subclasse de JTextField, ela herda todas as propriedades de um campo de texto, além de suas próprias funcionalidades, como mascarar os caracteres inseridos.

Detalhes do construtor

  • JPasswordField (): este é o construtor mais simples que cria um campo de senha com documento padrão, largura zero da coluna e nenhuma sequência de texto inicial (nula).
  • JPasswordField (Documento de documento, String txt, colunas int): esse construtor cria um campo de senha com um documento especificado, largura de coluna especificada e senha padrão especificada.
  • JPasswordField (colunas int): esse construtor cria um campo de senha com largura de coluna especificada.
  • JPasswordField (texto da sequência): Este construtor cria um campo de senha com a senha padrão especificada.
  • JPasswordField (texto da string, colunas int): esse construtor cria um campo de senha com largura de coluna especificada e senha padrão especificada.

Detalhes do método

  • char () getPassword (): este é um método importante e mais útil da classe JPasswordField que retorna a senha, como uma matriz de caracteres, inserida neste JPasswordField.
  • String getText (): este método retorna a senha, como uma string, inserida neste JPasswordField. Mas esse método foi descontinuado na plataforma Java 2 v1.2, substituído pelo método getPassword ().
  • String getText (int offs, int len): Este método retorna uma parte da senha, como uma string, inserida neste JPasswordField. Mas esse método foi descontinuado na plataforma Java 2 v1.2, substituído pelo método getPassword ().
  • void copy (): esse método chama o método allowErrorFeedback na aparência atual que inicia um bipe de erro.
  • void cut (): esse método chama o método allowErrorFeedback na aparência atual que inicia um bipe de erro.
  • booleano echoCharIsSet (): este método retorna true se um caractere estiver definido para ecoar nesse JPasswordField. Caso contrário, false.
  • char getEchoChar (): este método retorna o caractere definido para este JPasswordField para ecoar.
  • void setEchoChar (char c): este método define o caractere de eco para este campo de senha.
  • String getUIClassID (): este método retorna o nome da classe de aparência que renderiza esse componente.
  • string protegida paramString (): este método retorna uma representação de string deste campo de senha.
  • void updateUI (): este método recarrega a interface do usuário conectável deste campo de senha.
  • AccessibleContext getAccessibleContext (): este método retorna o AccessibleContext associado a este JPasswordField.

Exemplo de Jpasswordfield

Abaixo está o exemplo para Jpasswordfield:

Código:

package application;
import java.awt.GridLayout;
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.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class JPasswordFieldDemo (
public static void main(String() args) (
JFrame app = new JFrame("JPasswordField Demo");
app.setLayout(new GridLayout(4, 0));
app.setSize(400, 400);
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
JPanel panel4 = new JPanel();
JLabel label = new JLabel("Password : ");
JPasswordField passwordField = new JPasswordField(10);
JButton submit = new JButton("submit");
panel1.add(label);
panel1.add(passwordField);
panel1.add(submit);
JLabel status = new JLabel("Password is : ");
panel2.add(status);
JLabel label2 = new JLabel("Set echo character : ");
JTextField textFieldForEchoChar = new JTextField(5);
JButton setEchoCharButton = new JButton("SetEchoChar");
JLabel statusOfSetEchoChar = new JLabel("Echo character is : " + passwordField.getEchoChar());
panel3.add(label2);
panel3.add(textFieldForEchoChar);
panel3.add(setEchoCharButton);
panel4.add(statusOfSetEchoChar);
app.add(panel1);
app.add(panel2);
app.add(panel3);
app.add(panel4);
app.setVisible(true);
ActionListener actionListener = new ActionListener() (
@Override
public void actionPerformed(ActionEvent e) (
String command = e.getActionCommand();if (command.equals("submit")) (
String password = new String(passwordField.getPassword());
status.setText("Password is : " + password);
)
if (command.equals("SetEchoChar")) (
char echoChar = textFieldForEchoChar.getText().charAt(0);
passwordField.setEchoChar(echoChar);
statusOfSetEchoChar.setText("Echo character set to: " + echoChar);
)
)
);
submit.addActionListener(actionListener);
setEchoCharButton.addActionListener(actionListener);
)
)

Explicação

Esta é uma aplicação simples na qual o JPasswordField e suas funcionalidades são mostradas.

  • No topo, existe um JFrame, que é a nossa aplicação.
  • Neste JFrame, quatro painéis são adicionados.
  • No primeiro painel, um JPasswordField é adicionado para que o usuário possa digitar a senha aqui.
  • E um botão é adicionado para enviar a senha.
  • No segundo painel, um JLabel é adicionado para mostrar a senha que o usuário digitou. Quando o usuário clicar no botão enviar no primeiro painel, esse status será alterado e a senha mais recente será exibida.
  • O status no segundo painel é atualizado usando um ouvinte de ação que é adicionado ao botão enviar.
  • Quando o usuário digita a senha, ela não é mostrada no JPasswordField. Em vez disso, os caracteres de eco são mostrados e a senha é oculta.
  • Há um caractere de eco padrão. Além disso, podemos definir o caractere de eco para o campo de senha. Agora vamos fazer isso.
  • No terceiro painel, uma caixa de texto e um botão são adicionados. Esta caixa de texto deve receber echo41char do usuário.
  • Os usuários terão que digitar um caractere e pressionar o botão, e o eco de caractere será definido no campo de senha.
  • No quarto painel, o usuário pode ver o caractere de eco atual ou o conjunto de caracteres recentemente definido do campo de senha. Isso é obtido usando um JLabel e um ouvinte de ação adicionado ao botão no terceiro painel.

Resultado:

1. Este é o aplicativo no qual o usuário pode digitar a senha, ver a senha digitada, alterar o caractere de eco do campo de senha e ver o caractere de eco atual:

2. Agora, o usuário digita a senha (“12345”) e clica no botão Enviar. Em seguida, a senha inserida pelo usuário é mostrada no status abaixo do campo de senha. Além disso, você pode ver o caractere de eco atual (padrão) do campo de senha na parte inferior:

3. Agora o usuário deseja alterar o caractere de eco do campo de senha. Para isso, o usuário digita "*" na segunda caixa de texto e pressiona o botão "SetEchoChar" e o caractere de eco é alterado automaticamente no campo de senha.

4. Da mesma forma, o usuário define o caractere de eco como "#":

Conclusão - Jpasswordfield

JPasswordField é um componente importante no Swing, que permite ao usuário digitar a senha sem descartá-la visualmente para outras pessoas. Este arquivo pode ser usado para desenvolver uma página de login e inscrição de qualquer aplicativo. Isso aumenta a segurança do aplicativo e os faz parecer e se sentir melhor. Além disso, o desenvolvedor pode definir seu caractere de eco favorito!

Artigos recomendados

Este é um guia para Jpasswordfield. Aqui discutimos que o Jpasswordfield pode ser usado para desenvolver uma página de login e inscrição de qualquer aplicativo. Você também pode consultar o seguinte artigo para saber mais -

  1. Componentes Swing em Java
  2. JComponent em Java
  3. JFrame em Java
  4. CardLayout em Java