JAVA中JPasswordField实现密码的确认

我们在设计注册模块时,经常要验证两次填写的密码是否一致,那么如何利用JPasswordField实现呢?

首先设计GUI界面:

JAVA中JPasswordField实现密码的确认_第1张图片

实验1:利用getText()方法取得JPasswordField内容,但是这个方法已经被废弃。另外,简单地说,“equals()”与“==”比较一个对象的不同之处在于:“equals()”只比较对象的“内容”,而“==”比较的是对象的地址(当然,如果地址相同了,内容当然也相同)。

JAVA中JPasswordField实现密码的确认_第2张图片

实验2:利用getPassword()方法取得JPasswordField内容,但是结果有点出乎意料,为什么passwordField1.getPassword().equals(passwordField2.getPassword())为假呢?

JAVA中JPasswordField实现密码的确认_第3张图片

研究一下getPassword()方法:其返回值类型为char []。

JAVA中JPasswordField实现密码的确认_第4张图片

那么char数组如何比较呢?下面这个方法不行。

JAVA中JPasswordField实现密码的确认_第5张图片

如果把它转化为String类型,问题得解:

JAVA中JPasswordField实现密码的确认_第6张图片

因此密码的比较也可以如法炮制:

JAVA中JPasswordField实现密码的确认_第7张图片

看一哈源码:图示的两个条件都不满足,所以返回false。

JAVA中JPasswordField实现密码的确认_第8张图片

那么问题来了,除了这个方法,还有其它更简单的方法吗?欢迎交流(手动滑稽)

转载于:https://www.cnblogs.com/Libinkai/p/9306790.html

你可能感兴趣的:(java,数据库,移动开发)