Java 解析JPasswordField结果

Java 解析JPasswordField结果,java,swing,jframe,comparison,jpasswordfield,Java,Swing,Jframe,Comparison,Jpasswordfield,我是Java新手,所以我甚至不知道我是否做得正确,但我已经创建了一个带有文本字段、密码字段和按钮的GUI。按钮上有一个事件侦听器。按下时,侦听器将检查名称和密码字段,但它当前未按预期工作 事件代码: public class event implements ActionListener { @Override public void actionPerformed(ActionEvent arg) { String name = textfield.getTex

我是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上的标签设置文本。但是,目前,它仅将文本设置为
未知用户
,而不管输入的信息是否正确


为什么要这样做?我如何才能正确地获得所需的值?

如评论中所述。 比较字符串的安全方法是使用String.equals()方法

换线

if(name==“Spedwards”&&pass==“test”){


if(“Spedwards.equals(name)和&“test.equals(pass)){

使用str1.equals(str2)来比较字符串。@邹祖对此表示感谢。@XingFei我完全忘了Java有
.equals()
方法。我习惯使用Javascript,其中只有
==
密码字段不返回字符串是有原因的,您不应该将字符数组变成字符串,这是一种安全性hole@MadProgrammer我现在只是在学习。如果我真的发布了一个产品,我肯定不会这样做。