JPasswordField是一個JTextField,它隱藏了輸入的字符。
我們可以通過使用setEchoChar(char newEchoChar)方法設(shè)置我們自己的echo字符。
JPasswordField類具有與JTextField類相同的構(gòu)造函數(shù)集。
我們組合初始文本,列數(shù)和一個Document對象來創(chuàng)建一個JPasswordField對象。
要創(chuàng)建10個字符寬的密碼字段
JPasswordField passwordField = new JPasswordField(10);
出于安全原因,JPasswordField的getText()方法已被棄用。
我們應(yīng)該使用它的getPassword()方法,它返回一個char數(shù)組。
以下代碼顯示如何驗證在中輸入的密碼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,因此實際的密碼字符是可見的。
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); } }
更多建議: