[英]How do I verify JPasswordField is not missing in Java?
我正在 java 中创建一个应用程序,该应用程序在创建新帐户时必须要求用户输入密码和用户名,如果缺少用户名或密码,它会向用户发送适当的警告,否则,如果没有用户名或密码丢失它会将数据发送到我在 SQL 中创建的数据库。 知道 JPasswordField.getPassword() 返回一个字符数组,我尝试**以这种方式获取用户密码:
private static void doIfSomethingIsMissing() {
// Turning JPasswordField to a String.
String passwordText = new String(passwordField.getPassword());
if(passwordText.toString().equals("")) {
accountCreationWarning.setText(missingPassword);
}
else if(usernameField.getText().toString().equals("")) {
accountCreationWarning.setText(missingUser);
}
}
这就是它的作用:
** 当然这不是我尝试过的唯一方法,我已经尝试了很多解决方案,所以如果您认为我没有进行足够的研究,那您就错了。
建议的方法:
private boolean validateLogon () {
if (passwordField.getPassword().length == 0) {
accountCreationWarning.setText(missingPassword);
return false;
}
if(usernameField.getText().equals("")) {
accountCreationWarning.setText(missingUser);
return false;
}
return true;
}
该方法旨在验证是否同时提供了用户名和密码。 validateLogon()
这个名字更好地表达了这一点。
从“静态”更改允许您访问封闭 class 中的其他成员。 包括“accountCreationWarning”。 我猜这可能是 Swing JTextField (或等效)。 如果您愿意,它还允许您在 class 中将“missingPassword”和“missingUser”声明为static final String
常量。
返回“true”或“false”允许调用者决定是否更新数据库(和/或采取其他纠正措施,如果用户名/密码验证失败)。
不需要额外的“toString()”调用。
PS:这假设“usernameField”和“passwordField”在用户输入任何内容之前都是空白的。
不确定实际问题是什么,但您似乎想检查userName
或password
是否为空。
所以删除 else,并使用单独的if
块来检查userName
是否为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.