java jpasswordfield_JAVA中JPasswordField实现密码的确认

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

首先设计GUI界面:

6618e0f53bf81cbccebfd0ce835a895c.png

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

59006eefb50daa59d981062475305a3c.png

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

91b71cb92b232dd712df27b5971adb97.png

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

dcc984d78cd53e74e257778679f1e8fd.png

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

231108b8ab21873fb33a9fb3ca00ea71.png

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

b1f8a9df3faea4ae7a7c644861e2ca60.png

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

e5c3758f852b23b3d570d20f779bb87c.png

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

1614388d27b5f26ff29f7217ba81762b.png

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

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

package cn.edu.hbue.ghp; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class tainjia { public static void main(String[] args) { // TODO Auto-generated method stub java.sql.Connection connection = null; PreparedStatement preStmt = null; try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/grade?user=root&"+"password=ghp"; connection = DriverManager.getConnection(url); if(connection != null){ System.out.println("连接成功"); } String sql = "insert into book(author,publisher,isbn,pubDate,price,categoryId)"+"values(?,?,?,?,?,?)"; preStmt = connection.prepareStatement(sql); preStmt.setString(1, "EDA技术"); preStmt.setString(2, "清华大学"); preStmt.setString(3, "1"); preStmt.setString(4, "2017-1-1"); preStmt.setDouble(5, 66); preStmt.setInt(6, 2); preStmt.executeUpdate(); preStmt.setString(1, "你要去相信,没有到不了的明天"); preStmt.setString(2, "湖南出版时"); preStmt.setString(3, "2"); preStmt.setString(4, "2014-11-13"); preStmt.setDouble(5, 32.8); preStmt.setInt(6, 1); preStmt.executeUpdate(); System.out.println("添加数据的行为数为"+preStmt.getUpdateCount()); }catch(ClassNotFoundException e){ System.out.println("JDBC driver error"); }catch(SQLException e){ System.out.println("JDBC operation error"); }finally{ try{ if(preStmt != null){ preStmt.close(); } }catch(SQLException e){ System.out.println("PreparedStatement close error"); } try{ if( connection != null){ connection.close(); } }catch(SQLException e){ System.out.println("PreparedStatement close error"); } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值