Introducción a JPasswordField

JPasswordField es un componente Swing y un campo de entrada que facilita al usuario ingresar su contraseña. Debe haber visto dicho campo al iniciar sesión en cualquier sitio web como Facebook o Gmail que muestra "*" o cualquier otro carácter cuando escribe su contraseña en el cuadro de texto proporcionado. JPasswordField es lo mismo.

Declaración de Jpasswordfield

public class JPasswordField extends JTextField

Como puede ver, esta clase es una subclase de JTextField, hereda todas las propiedades de un campo de texto más sus propias funcionalidades como enmascarar los caracteres ingresados.

Detalles del constructor

  • JPasswordField (): este es el constructor más simple que crea un campo de contraseña con documento predeterminado, ancho de columna cero y sin cadena de texto inicial (nulo).
  • JPasswordField (Document doc, String txt, int columnas): este constructor crea un campo de contraseña con un documento especificado, un ancho de columna especificado y una contraseña predeterminada especificada.
  • JPasswordField (int columnas): este constructor crea un campo de contraseña con un ancho de columna especificado.
  • JPasswordField (texto de cadena): este constructor crea un campo de contraseña con la contraseña predeterminada especificada.
  • JPasswordField (texto de cadena, columnas int): este constructor crea un campo de contraseña con el ancho de columna especificado y la contraseña predeterminada especificada.

Detalles del método

  • char () getPassword (): este es un método importante y más útil de la clase JPasswordField que devuelve la contraseña, como una matriz de caracteres, ingresada en este JPasswordField.
  • String getText (): este método devuelve la contraseña, como una cadena, ingresada en este JPasswordField. Pero este método está en desuso en la plataforma Java 2 v1.2, reemplazado por el método getPassword ().
  • String getText (int offs, int len): este método devuelve una parte de la contraseña, como una cadena, ingresada en este JPasswordField. Pero este método está en desuso en la plataforma Java 2 v1.2, reemplazado por el método getPassword ().
  • copia vacía (): este método invoca provideErrorFeedback en el aspecto actual que inicia un pitido de error.
  • void cut (): este método invoca provideErrorFeedback en el aspecto actual que inicia un pitido de error.
  • boolean echoCharIsSet (): este método devuelve verdadero si un carácter está configurado para hacer eco en este JPasswordField. De lo contrario falso.
  • char getEchoChar (): este método devuelve el carácter que se establece en este JPasswordField para hacer eco.
  • vacío setEchoChar (char c): este método establece el carácter de eco en este campo de contraseña.
  • String getUIClassID (): este método devuelve el nombre de la clase de apariencia que representa este componente.
  • string protegido paramString (): este método devuelve una representación de cadena de este campo de contraseña.
  • void updateUI (): este método vuelve a cargar la UI conectable de este campo de contraseña.
  • AccessibleContext getAccessibleContext (): este método devuelve el AccessibleContext asociado con este JPasswordField.

Ejemplo de Jpasswordfield

A continuación se muestra el ejemplo de 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);
)
)

Explicación

Esta es una aplicación simple en la que se muestran JPasswordField y sus funcionalidades.

  • En la parte superior, hay un JFrame que es nuestra aplicación.
  • En este JFrame se agregan cuatro paneles.
  • En el primer panel, se agrega un JPasswordField para que el usuario pueda ingresar la contraseña aquí.
  • Y se agrega un botón para enviar la contraseña.
  • En el segundo panel, se agrega un JLabel para mostrar la contraseña que el usuario ha ingresado. Cuando el usuario hace clic en el botón Enviar desde el primer panel, este estado cambiará y se mostrará la última contraseña.
  • El estado en el segundo panel se actualiza mediante un escucha de acción que se agrega al botón de envío.
  • Cuando el usuario escribe la contraseña, no se muestra en JPasswordField, en su lugar, se muestran caracteres de eco y la contraseña está oculta.
  • Hay un echo echo predeterminado. Además, podemos configurar el eco de caracteres para el campo de contraseña. Ahora vamos a hacer eso.
  • En el tercer panel, se agregan un cuadro de texto y un botón. Este cuadro de texto debe tomar echo41char del usuario.
  • Los usuarios deberán ingresar un carácter y presionar el botón y echo char se establecerá en el campo de contraseña.
  • En el cuarto panel, el usuario puede ver el eco actual o el eco recién configurado del campo de contraseña. Esto se logra utilizando un JLabel y un oyente de acción agregado al botón en el tercer panel.

Salida:

1. Esta es la aplicación en la cual el usuario puede ingresar la contraseña, ver la contraseña ingresada, cambiar el eco del campo de contraseña y ver el eco actual:

2. Ahora el usuario ingresa la contraseña ("12345") y hace clic en el botón enviar. Luego, la contraseña ingresada por el usuario se muestra en el estado debajo del campo de contraseña. Además, puede ver el eco actual (predeterminado) del campo de contraseña en la parte inferior:

3. Ahora el usuario quiere cambiar el carácter de eco del campo de contraseña. Para lograr esto, el usuario ingresa "*" en el segundo cuadro de texto y presiona el botón "SetEchoChar" y el eco echo cambia automáticamente en el campo de contraseña.

4. Del mismo modo, el usuario establece el eco echo en "#":

Conclusión - Jpasswordfield

JPasswordField es un componente importante en Swing que permite al usuario ingresar la contraseña sin disponer visualmente de ella. Este archivo se puede utilizar para desarrollar una página de inicio de sesión y registro de cualquier aplicación. Esto aumenta la seguridad de la aplicación y hace que se vean y se sientan mejor. ¡Además, el desarrollador puede configurar su eco favorito!

Artículos recomendados

Esta es una guía de Jpasswordfield. Aquí discutimos que Jpasswordfield se puede usar para desarrollar una página de inicio de sesión y registro de cualquier aplicación. También puede consultar el siguiente artículo para obtener más información:

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