【发布时间】:2021-02-14 01:51:23
【问题描述】:
我的代码有什么问题?我正在从 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)");
}
}
在启动和使用代码时,结果是“跳过”。
注意:我是 stackoverflow 的新手,如果我做错了什么,请见谅。
【问题讨论】:
-
您是在比较标签本身,而不是其中的任何文本。
-
你为什么要检查一个 JLabel 是否等于另一个?这个问题和代码让我感到困惑。您不想比较他们持有的文字吗?
-
如果我尝试直接使用,我会在不可转换类型 'JLabel' 和 'String' 的对象之间收到此错误“'equals'”
-
并且标签没有常量文本。它随输入而变化
-
'equals' 在不可转换类型 'JLabel' 和 'String 的对象之间 - 很抱歉,但消息不是很清楚吗?如何比较 JLabel 和字符串?它们是不同的对象。您需要获取标签的文本并将其与字符串进行比较。
标签: java swing jlabel equals jtextfield