Java Swing JPasswordField

2018-01-09 19:23 更新

Java Swing教程 - Java Swing JPasswordField


JPasswordField是一個(gè)JTextField,它隱藏了輸入的字符。

我們可以通過使用setEchoChar(char newEchoChar)方法設(shè)置我們自己的echo字符。

JPasswordField類具有與JTextField類相同的構(gòu)造函數(shù)集。

我們組合初始文本,列數(shù)和一個(gè)Document對(duì)象來創(chuàng)建一個(gè)JPasswordField對(duì)象。

要?jiǎng)?chuàng)建10個(gè)字符寬的密碼字段

JPasswordField passwordField = new JPasswordField(10);

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

我們應(yīng)該使用它的getPassword()方法,它返回一個(gè)char數(shù)組。

以下代碼顯示如何驗(yàn)證在中輸入的密碼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");
}

以下代碼將設(shè)置為回聲字符。

password.setEchoChar("#");

我們可以使用JPasswordField作為JTextField,將其echo字符設(shè)置為零。

以下代碼將echo字符設(shè)置為0,因此實(shí)際的密碼字符是可見的。

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);
  }
}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)