JPasswordField
類是一個專門處理密碼功能並允許編輯單行文字的元件。
以下是javax.swing.JPasswordField
類的宣告 -
public class JPasswordField
extends JTextField
編號 | 建構函式 | 描述 |
---|---|---|
1 | JPasswordField() |
構造一個新的JPasswordField ,它包含一個預設文件,起始文字字串為null 和0 列寬。 |
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
使用編輯器建立以下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);
}
}
執行上面範例程式碼,得到以下結果: