【发布时间】:2014-05-04 09:28:55
【问题描述】:
我是 Java 的新手,所以我什至不知道我是否正确执行此操作,但我创建了一个带有文本字段、密码字段和按钮的 GUI。我在按钮上有一个事件监听器。当它被按下时,监听器将检查名称和密码字段,但它目前没有按预期工作。
事件代码:
public class event implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg) {
String name = textfield.getText();
char[] temp_pass = password.getPassword();
String pass = new String(temp_pass);
if (name == "Spedwards" && pass == "test") {
result.setText("Welcome Liam");
} else {
result.setText("Unknown User");
}
}
}
我理解这一点的方式是,它从文本字段和密码字段中获取文本,然后检查它是否分别等于 Spedwards 和 test,然后为我在 GUI 上的标签设置文本.但是,目前它只将文本设置为Unknown User,无论是否输入正确的信息。
为什么要这样做,我怎样才能正确获得我需要的值?
【问题讨论】:
-
使用 str1.equals(str2) 比较字符串。
-
@ZouZou 谢谢。
-
@XingFei 我完全忘记了 Java 有
.equals()方法。我已经习惯了只有==的 Javascript -
密码字段不返回字符串是有原因的,你不应该把字符数组变成字符串,这是一个安全漏洞
-
@MadProgrammer 我现在只是在学习。如果我真的发布过产品,我肯定不会这样做。
标签: java swing jframe comparison jpasswordfield