JAVA中JPasswordField实现密码的确认

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

首先设计GUI界面:

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

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/Libinkai/p/9306790.html