java swing - 执行的按钮动作不起作用

时间:2014-10-24 20:51:26

标签: java swing netbeans

我的窗口是一个登录表单,其中包含2个文本字段(用于用户名和密码)和1个按钮(登录按钮)。

我使用NetBeans来帮助我设计窗口,这是登录按钮的actionPerformed方法:

private void loginButtonActionPerformed(ActionEvent evt) 
{   
    String password = new String(this.passwordField.getPassword());

    if (this.userNameTextField.getText() == "system" && password == "admin")
    {
        JOptionPane.showMessageDialog(null, "good");
    }

}  

我调试了应用程序,因为登录按钮什么都没做,我发现if句子甚至没有读过。 但是,如果我删除if句子并按下登录按钮,则会显示该消息。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

您正在使用==运算符比较字符串,这是错误的。

请我们:

string1.equals(string2);

相关示例:

password.equals("admin");

答案 1 :(得分:2)

字符串应与equals进行比较:

this.userNameTextField.getText().equals("system")

这将比较字符串中的文字 你现在正在做的是引用的比较(即字符串在内存中的位置)

正如评论中所提到的:在ActionListener中使用JOptionPane.showMessageDialog(null, "good");是一个坏主意,因为它会阻止整个GUI线程