为什么 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
作为参数。因此编译器允许您比较任何对象,即使它是无意义的比较。
我的代码有什么问题?我从 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
作为参数。因此编译器允许您比较任何对象,即使它是无意义的比较。