为什么 label.equals(label1) 代码看不到 label1?

Why label.equals(label1) code doesn't sees label1?

我的代码有什么问题?我从 JTextField passwordField/nickNameField 获取输入到 fieldNickname/fieldPassword 并用于我的 registerAction。我已经搜索了答案,但找不到。

我的代码需要输入昵称和密码,然后要求输入昵称和密码。如果为真,则在登录部分再次要求输入昵称和密码。

我知道问题的根源,但不知道该怎么做。该代码必须可以正常工作..

问题来源:

else if (trueNickname.equals(fieldNickname) && truePassword.equals(fieldPassword)) 

我的代码(注册部分):

JLabel trueNickname = new JLabel("null");
JLabel truePassword = new JLabel("null");
JLabel fieldNickname = new JLabel (nickNameField.getText());
JLabel fieldPassword = new JLabel (passwordField.getText());

public void registerAction(ActionEvent e){
if (a == 0) {
    trueNickname.setText(nickNameField.getText());
    truePassword.setText(passwordField.getText());
    result.setText("Write your Nickname and Password again.");
    a = a + 1;
}
else if (trueNickname.equals(fieldNickname) && truePassword.equals(fieldPassword)) {
    result.setText("True Nickname and Password. You can login.");
}
else if (a == 1) {
    result.setText("SKIPPED(a = 1)");
}

}

在启动和使用代码时,结果是“已跳过”。

注意:我是 Whosebug 的新手,如果我做错了什么,请见谅。

要比较标签上的文本,您需要执行 trueNickname.getText().equals(fieldNickname.getText())

equals 方法是一个常见的陷阱,因为它使用 Object 作为参数。因此编译器允许您比较任何对象,即使它是无意义的比较。