一、介绍
密码框(JPasswordField)与文本框的定义和用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密。密码框对象是通过javax.swing.JPasswordField类创建的。
二、常用构造方法
1、public JPasswordField()
2、public JPasswordField(String text)
3、public JPasswordField(int fieldwidth)
4、public JPasswordField(String text,int fieldwidth)
5、public JPasswordField(Document docModel,String text,int fieldWidth)
三、程序代码(列子)
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class PasswordFieldTest extends JFrame {public PasswordFieldTest() {Container container = getContentPane(); // 获取内容面板container.setLayout(new GridLayout(2, 2, 5, 5)); // 设置布局管理器为3行2列,间距为5setTitle("文本框和密码框组件");setSize(400, 200);JTextField jt = new JTextField("请输入文本", 20); // 文本框JButton jb = new JButton("清除文本");JPasswordField jp = new JPasswordField(20); // 密码框JButton jbPassword = new JButton("提交密码");jp.setEchoChar('*'); // 设置回显字符为'*'container.add(new JLabel("文本:"));container.add(jt);container.add(new JLabel("操作:"));container.add(jb);container.add(new JLabel("密码:"));container.add(jp);container.add(new JLabel("")); // 空标签用于占位,保持布局一致container.add(jbPassword);jt.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {jt.setText("");jt.requestFocus(); // 请求将焦点设置回文本字段}});jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {jt.setText("");jt.requestFocus(); // 请求将焦点设置回文本字段}});jbPassword.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 这里可以添加处理密码提交的逻辑// 例如,验证密码或将其存储在某处char[] password = jp.getPassword();if (password != null && password.length > 0) {// 转换为字符串仅用于演示(注意:在实际应用中,避免将密码存储为字符串)String passwordStr = new String(password);JOptionPane.showMessageDialog(null, "您输入的密码是: " + passwordStr);} else {JOptionPane.showMessageDialog(null, "请输入密码");}// 清除密码框内容jp.setText("");jp.requestFocus(); // 请求将焦点设置回密码框}});setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new PasswordFieldTest();}
}