我在使用jbuttonactionperformed在java中接收用户名和密码时遇到了麻烦。这段代码有什么问题。我在谷歌搜索,看到一个字符数组用于存储getPassword返回。这是错的吗?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
char[] input = {'r','o','o','t'};
if (jTextField1.getText() == "admin" && jPasswordField1.getPassword() == input) {
srchnm.main(null);
}
}
答案 0 :(得分:0)
您永远不应该比较字符串并避免使用==
比较其他引用类型。改为使用equals(...)
方法代替字符串,对于密码,java.util.Arrays类有一个可以使用的equals方法。
if (java.util.Arrays.equals(jPasswordField1.getPassword(), input) &&
"admin".equals(jTextField1.getText())) {
srchnm.main(null);
}
或者,你可以改变这个:
"admin".equals(jTextField1.getText())
到
"admin".equalsIgnoreCase(jTextField1.getText())
Myself(Hovercraft),我喜欢使用String常量来避免调试输入错误:
// at the top
public static final String ADMIN = "admin";
// ....
// a boolean statement in the if block:
ADMIN.equals(jTextField1.getText())