Swing JPasswordField類

2019-10-16 22:10:36

JPasswordField類是一個專門處理密碼功能並允許編輯單行文字的元件。

類宣告

以下是javax.swing.JPasswordField類的宣告 -

public class JPasswordField
   extends JTextField

類建構函式

編號 建構函式 描述
1 JPasswordField() 構造一個新的JPasswordField,它包含一個預設文件,起始文字字串為null0列寬。
2 JPasswordField(Document doc, String txt, int columns) 構造一個新的JPasswordField,它使用給定的文字儲存模型和給定的列數。
3 JPasswordField(int columns) 構造具有指定列數的新空JPasswordField
4 JPasswordField(String text) 構造一個使用指定文字初始化的新JPasswordField
5 JPasswordField(String text, int columns) 構造一個使用指定文字和列初始化的新JPasswordField

類方法

編號 方法 描述
1 void copy() 在當前外觀上呼叫provideErrorFeedback,它通常會發出錯誤。
2 void cut() 在當前外觀上呼叫provideErrorFeedback,它通常會發出錯誤。
3 boolean echoCharIsSet() 如果此JPasswordField具有用於回顯的字元集,則返回true
4 AccessibleContext getAccessibleContext() 返回與此JPasswordField關聯的AccessibleContext
5 char getEchoChar() 返回用於回顯的字元。
6 char[] getPassword() 返回此TextComponent中包含的文字。
7 String getText() 已過時。從Java 2平台v1.2開始,由getPassword()取代。
8 String getUIClassID() 返回呈現此元件的L&F類的名稱。
9 protected String paramString() 返回此JPasswordField的字串表示形式。
10 void setEchoChar(char c) 設定此JPasswordField的回顯字元。
11 void updateUI() 重新載入可插入的UI。

方法繼承

該類繼承以下類中的方法 -

  • javax.swing.JTextField
  • javax.swing.text.JTextComponent
  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JPasswordField範例

使用編輯器建立以下Java程式 -


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JPasswordFieldExample {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public JPasswordFieldExample(){
      prepareGUI();
   }
   public static void main(String[] args){
       JPasswordFieldExample  swingControlDemo = new JPasswordFieldExample();      
      swingControlDemo.showPasswordFieldDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing JPasswordField範例");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showPasswordFieldDemo(){
      headerLabel.setText("Control in action: JPasswordField"); 

      JLabel namelabel= new JLabel("使用者名: ", JLabel.RIGHT);
      JLabel passwordLabel = new JLabel("密碼", JLabel.CENTER);
      final JTextField userText = new JTextField(6);
      final JPasswordField passwordText = new JPasswordField(6);      
      passwordText.setEchoChar('~');

      JButton loginButton = new JButton("登入");
      loginButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {     
            String data = "使用者名:" + userText.getText();
            data += ", 密碼: " + new String(passwordText.getPassword()); 
            statusLabel.setText(data);        
         }
      }); 
      controlPanel.add(namelabel);
      controlPanel.add(userText);
      controlPanel.add(passwordLabel);       
      controlPanel.add(passwordText);
      controlPanel.add(loginButton);
      mainFrame.setVisible(true);  
   }
}

執行上面範例程式碼,得到以下結果:

JPasswordField