阅读(2932) (0)

Java Swing JPasswordField

2017-01-09 19:23:21 更新

Java Swing教程 - Java Swing JPasswordField


JPasswordField是一个JTextField,它隐藏了输入的字符。

我们可以通过使用setEchoChar(char newEchoChar)方法设置我们自己的echo字符。

JPasswordField类具有与JTextField类相同的构造函数集。

我们组合初始文本,列数和一个Document对象来创建一个JPasswordField对象。

要创建10个字符宽的密码字段

JPasswordField passwordField = new JPasswordField(10);

出于安全原因,JPasswordField的getText()方法已被弃用。

我们应该使用它的getPassword()方法,它返回一个char数组。

以下代码显示如何验证在中输入的密码JPasswordField:

首先,获取在字段中输入的密码。

char c[] = passwordField.getPassword();

String correctPass = "myPassword";
char[] cp  = correctPass.toCharArray();

if (Arrays.equals(c,  cp)) {
  System.out.println("The password is correct");
}
else  {
  System.out.println("The password  is incorrect");
}

以下代码将设置为回声字符。

password.setEchoChar("#");

我们可以使用JPasswordField作为JTextField,将其echo字符设置为零。

以下代码将echo字符设置为0,因此实际的密码字符是可见的。

passwordField.setEchoChar((char)0);
import java.awt.BorderLayout;
import java.awt.Container;
/* w ww.jav  a 2s  . c  o m*/
import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class Main {
  public static void main(String args[]) {
    JFrame f = new JFrame("JPasswordField Sample");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container content = f.getContentPane();
    content.setLayout(new BorderLayout());
    Box rowOne = Box.createHorizontalBox();
    rowOne.add(new JLabel("Username"));
    rowOne.add(new JTextField());
    Box rowTwo = Box.createHorizontalBox();
    rowTwo.add(new JLabel("Password"));
    rowTwo.add(new JPasswordField());
    content.add(rowOne, BorderLayout.NORTH);
    content.add(rowTwo, BorderLayout.SOUTH);
    f.setSize(300, 200);
    f.setVisible(true);
  }
}