我们在设计注册模块时,经常要验证两次填写的密码是否一致,那么如何利用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