JavaSwing之--JPasswordField

article/2025/7/15 7:31:58

在这里插入图片描述

Java Swing之–JPasswordField应用详解

JPasswordField是一个轻量级组件,允许编辑单行文本,不会显示键入的原始字符,而是显示替代文本或图形。

JPasswordField的直接父类是JTextField,它继承了父类中的常用构造方法与普通方法。

关于JTextField组件已有详细介绍,故在讲解密码框时仅介绍有关密码输入、获取等紧密相关内容。

一、构造方法
方法名称功能描述
JPasswordField()构造一个新的 JPasswordField ,具有默认文档、null 起始文本字符串和 0 列宽。
JPasswordField(int columns)构造一个具有指定列数的新空 JPasswordField
JPasswordField(String text)构造一个用指定文本初始化的新 JPasswordField
JPasswordField(String text, int columns)构造一个用指定文本和列初始化的新 JPasswordField
JPasswordField(Document doc, String txt, int columns)构造一个新的 JPasswordField,它使用给定的文本存储模型和给定的列数。

JPasswordFiled构造方法在形式上与JTextField相似,用法相似,不再赘述。

二、一般方法

在继承JTextField一般方法基础上,JPasswordField封装了自由的一般方法用于实现对密码内容的各类操作。

方法名称功能描述
char[] getPassword()返回此 TextComponent 中包含的文本,返回类型是字符数组
char getEchoChar()返回用于表示密码的字符。
void setEchoChar(char c)为此 JPasswordField 设置表示密码的字符。
void setText(String t)设置密码框的内容
三、用法详解

用法讲解与代码实现均已创建的JPasswordField对象为例。

JPasswordField jPasswordField = new JPasswordField();
  • 设置密码框回显字符。调用方法 setEchorChar(char c),以给定的字符c作为回显字符在密码框中显示,表示密码。
jPasswordField.setEchoChar('#');//输入密码时文本框中显示#
  • 获取密码。调用getPassword()方法,返回密码形成的字符数组,如有必要可转化需要的数据类型。
// 将密码字段的字符数组转换为字符串
String str = String.valueOf(jPasswordField.getPassword());
// 在对话框中显示密码信息
JOptionPane.showMessageDialog(null,str);
  • 获取回显字符。调用方法getEchoChar()获得用以表示密码的字符
char echo = jPasswordField.getEchoChar();//字符为:#
四、拓展

在使用密码框构建界面时,有时需要明码显示密码,以确定是否输入正确,可以参照以下样式构建。

在这里插入图片描述

以上界面设计的逻辑为:

①创建一个JPanel面板对象

②在面板容器中添加一个JPasswordField对象

③在面板容器中再添加一个JLabel,用以放置眼睛图标

当需要明码显示输入密码时,值需要单价眼睛图标,在密码显示密码同时,眼睛图标从关闭状态转化为打开状态。在技术实现上,为JLabel对象注册鼠标事件监听,单击图标标签时通过调用setEchoChar()方法和setImage()方法改变显示状态,如下代码所示。

//创建一个全局的逻辑标记,表示密码框是否明码显示,默认显示符号。根据程序需要确定修饰符及作用域。private static boolean isshow = false;//默认false//创建一个JPanel对象作为放置密码框和眼睛图标标签的容器
JPanel jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setBounds(100,120,300,50);// 创建一个密码输入框
JPasswordField jPasswordField = new JPasswordField();
// 设置密码输入框的位置和大小
jPasswordField.setBounds(0,10,265,30);
// 移除密码输入框的边框
jPasswordField.setBorder(BorderFactory.createEmptyBorder());
// 将密码输入框添加到面板上
jPanel.add(jPasswordField);// 创建一个标签,用于显示眼睛图标
JLabel  jLabel = new JLabel();
// 设置标签的位置和大小
jLabel.setBounds(270,10,30,30);// 加载并设置闭眼图标,初始默认是关闭状态
ImageIcon icon1 = new ImageIcon("image/eyeclose.png");
icon1.setImage(icon1.getImage().getScaledInstance(30,30,Image.SCALE_SMOOTH));
jLabel.setIcon(icon1);// 创建一个睁开的眼睛图标
ImageIcon icon2= new ImageIcon("image/eye.png");
icon2.setImage(icon2.getImage().getScaledInstance(30,30,Image.SCALE_SMOOTH));// 将标签添加到面板上
jPanel.add(jLabel);// 为标签添加鼠标事件监听器
jLabel.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {// 切换密码显示状态isshow = !isshow;// 根据显示状态设置密码输入框的回显字符jPasswordField.setEchoChar(isshow?(char)0:'*');// 根据显示状态更新眼睛图标jLabel.setIcon(isshow?icon2:icon1);}
});

基于以上技术实现逻辑,读者可根据喜好自定义组件满足程序功能需求。

五、总结

JPasswordField密码框能与其他组件组合形成定制化的密码输入组件,提升程序友好性。更多更强用法,请读者参考官方说明文档。


http://www.hkcw.cn/article/gFkyxclyGI.shtml

相关文章

ACS期刊的投稿查重要求

ACS的查重要求在其官网写到:ACS Publications uses the Crossref Similarity Check Powered by iThenticate to screen submitted manuscripts for similarity to published material. Note that your manuscript may be screened during the submission process.&a…

一文速通Python并行计算:11 Python多进程编程-进程之间的数据安全传输-基于队列和管道

一文速通 Python 并行计算:11 Python 多进程编程-进程之间的数据安全传输-基于队列和管道 摘要: Python 多进程中,Queue 和 Pipe 提供进程间安全通信。Queue 依赖锁和缓冲区,保障数据原子性和有序性;Pipe 实现点对点单…

基于云模型与TOPSIS评价算法的综合应用研究

一、理论基础与算法特点 (一)云模型的核心原理 云模型是由李德毅院士于1995年提出的不确定性转换模型,通过三个数字特征量实现定性概念与定量描述的转换: 期望Ex:概念在论域中的中心值 熵En:表征概念的模…

Jenkins 2.479.1安装和邮箱配置教程

1.安装 在JDK安装并设置环境变量完成后,下载官网对应的war版本,在对应目录下打开命令行窗口并输入 java -jar jenkins.war其余参数感兴趣可以自行查阅,这里启动的 jenkins 服务默认占用8080端口,在浏览器输入 localhost:8080进入…

JavaScript正则表达式

参考笔记:JS之正则表达式_js 正则-CSDN博客 目录 一、正则表达式介绍 1. 快速入门案例1 2. 什么是正则表达式 3. 快速入门案例2 4. 正则表达式"按位"描述规则 二、正则表达式的定义方式 三、修饰符 modifiers 四、正则表达式方法 1. test() 2. exec() 3. search…

制作一款打飞机游戏63:自动保存

1.编辑器的自动保存实现 ‌目标‌:将自动保存功能扩展到所有编辑器,包括脑编辑器、模式编辑器、敌人编辑器和动画/精灵编辑器。‌实现方式‌: ‌代码复制‌:将关卡编辑器中的自动保存代码复制到其他编辑器中。‌标记数据变更‌&a…

“百亿补贴”商家承担比例升至70%-80%,京东外卖家也没“余粮”了?

内容/咏鹅 校对/莽夫 今日雷锋网转引新浪财经一则消息,称「京东外卖“百亿补贴”规则再调整:商家承担比例升至70%-80%」。 有多位商家公开爆料,京东外卖将此前平台与商家各承担50%的补贴成本比例,调整为商家承担70%-80%&#xff…

详解Seata的四种事务模式:AT、TCC、SAGA、XA

一、AT 模式(Auto Transaction - 默认模式) 核心原理: 基于 SQL 解析的自动补偿机制,通过代理数据源实现业务无侵入。 工作流程: 关键特性: 自动生成补偿: 前置镜像(Before Image&…

【MySQL系列05】构建99.999%高可用MySQL: 从主从复制到企业级集群架构详解

关键词: MySQL高可用架构、主从复制、读写分离、故障转移、MySQL集群、InnoDB Cluster、Percona XtraDB、MySQL Router、ProxySQL、数据库容灾 摘要: 本文从生活化的超市收银员比喻出发,深入浅出地讲解MySQL高可用架构的构建方法。从基础的主…

力扣刷题Day 65:单词搜索(79)

1.题目描述 2.思路 方法1(自己写的深度优先的回溯方法):遍历网格,每走过一格都将其坐标加入visited集合,然后向上、下、左、右四个方向查找可行路径,如果找到可行路径则一路向下延伸查找,如不可…

多卡训练核心技术详解

多卡训练核心技术详解 多卡训练 主要围绕分布式环境初始化、模型并行化、数据分片和梯度同步展开。下面结合您的代码,详细解释这些核心部分: 并行执行命令 torchrun --nproc_per_node=5 TokenLossMulCard.py 1. 分布式环境初始化 def init_distributed():init_process_…

PDT经理的角色认知

PDT团队 在IPD体系导入过程中,PDT经理(又称LPDT,Leader of Product Development Team)是最关键的角色之一,本篇文章中汉捷咨询就PDT经理的角色认知进行探讨。要认识PDT经理首先需要认识PDT,PDT&#xff08…

历年浙江大学计算机保研上机真题

2025浙江大学计算机保研上机真题 2024浙江大学计算机保研上机真题 2023浙江大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school?classification1 最小包围矩形 题目描述 给定一系列二维平面点的坐标 ( x , y ) (x, y) (x,y),其中 x x…

BKP(备份寄存器)和 RTC(实时时钟)

什么是BKP? 备份寄存器(BackupRegister)是42个16位的寄存器(不同设备存在差异:20字节(中容量和小容量)/84字节(大容量和互联型)),可用来存储 最多…

antDesignVue中a-upload上传组件的使用

工作中需要使用上传组件,记录一下a-upload部分属性用法 1.showUploadList属性使用 使用:showUploadList"{ showRemoveIcon: true ,showDownloadIcon: true }"属性可控制右侧下载,删除图标 2.如何实现回显功能 使用:defaultFileList"fil…

基于RK3568/RK3588/全志H3/飞腾芯片/音视频通话程序/语音对讲/视频对讲/实时性好/极低延迟

一、前言说明 近期收到几个需求都是做音视频通话,很多人会选择用webrtc的方案,这个当然是个不错的方案,但是依赖的东西太多,而且相关组件代码量很大,开发难度大。所以最终选择自己属性的方案,那就是推流拉…

借助DS用python帮你编写脚本(辅助开发测试)

最近在做一个音频采集识别项目,采集20HZ到20KHZ各个频带最大分贝数(DB),需要用到各个频段的测试音频来验证程序的正确性。 借助Deepseek,原本对python编程没有学过,也能轻松学会。 提问:pytho…

【图像处理基石】如何进行图像畸变校正?

图像畸变校正常用于计算机视觉、摄影测量学和机器人导航等领域,能够修正因镜头光学特性或传感器排列问题导致的图像失真。下面我将介绍几种常用的图像畸变校正算法,并提供Python实现和测试用例。 常用算法及Python实现 1. 径向畸变校正 径向畸变是最常…

技术创新如何赋能音视频直播行业?

在全球音视频直播行业的快速发展中,技术的持续创新始终是推动行业进步的核心动力。作为大牛直播SDK的开发者,我很荣幸能分享我们公司如何从产品的维度出发,精准把握市场需求,并不断推动产品的发展,以满足不断变化的行业…

我的世界服务端搭建

文章目录 我的世界服务端搭建使用forge搭建服务端确保服务器的 Java 环境安装1.20.1服务端配置文件修改启动游戏服务器 Minecraft server.properties 文件解析**基础设置****世界设置****网络与安全****性能优化****高级功能****配置文件示例****注意事项**Minecraft 白名单系统…