java - 如何使用 JTextFields 中的 If 语句

标签 java swing if-statement jtextfield string-comparison

<分区>

我已经尝试了几乎所有的方法,但我仍然无法正常运行这个该死的代码

public void Action(ActionEvent event)
{
    //We get the text from the textfield
    String fromUser = textfield1.getText();

    if (fromUser != null) {
        if(x<1)
        {
            if(fromUser.length() <= 10)
            {                                
                USERNAME = fromUser;
                x++;
                textfield1.setText("");
            }
            else
            {
                textarea1.setText("Username Surpasses Size Limit Please Try Again\nUsername Must Be 10 Characters Or Less");
                textfield1.setText("");
            }
        }
        else
        {
            if(x==1)
            {
                textarea1.setText("");
                x++;
            }
            //We append the text from the user
            textarea1.append(USERNAME+"> " + fromUser + "\n");
            //The pane auto-scrolls with each new response added
            textarea1.setCaretPosition(textarea1.getDocument().getLength());
            //We reset our text field to "" each time the user presses Enter
            textfield1.setText("");

            //This is Where my code should work
            if(fromUser == "n")
            {
                InitiateText("North");
            }
            else if(fromUser == "s")
            {
                InitiateText("South");
            }
            else if(fromUser == "w")
            {
                InitiateText("West");
            }
            else if(fromUser == "e")
            {
                InitiateText("East");
            }
            else
            {
                InitiateText("I don't comprehend");
            }
        }
    }
}   

public void InitiateText(String Where) //Where are you on the map
{
    //We append the text from the user
    textarea1.append("Map > " + Where + "\n");
    //The pane auto-scrolls with each new response added
    textarea1.setCaretPosition(textarea1.getDocument().getLength());
    //We reset our text field to "" each time the user presses Enter
    textfield1.setText("");
}

这是我最近的尝试,添加文本的方法工作正常,但 if 语句不起作用,我将输入“n”,它不会识别我输入的“n”。我做错了什么??

最佳答案

if(fromUser == "n") 更改为 if(fromUser.equals("n")) 并更改每个语句以使用 比较字符串equals() 方法而不是 ==

== 运算符只检查引用是否指向相同的字符串对象,它们不检查 String 是否相等。阅读String comparison with equals and assignment operator

关于java - 如何使用 JTextFields 中的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22588710/

相关文章:

java - 添加数组输出

java - 读取 .pgm 图像时在 Java 和 Matlab 之间具有不同的值

java - 如何拆分 getActionCommand() 以获得字符串中的第一个元素?

java swing - 为面板和里面的所有面板设置背景

java - 如果返回特定随机数,则需要比大量 if else 更好的东西

java - 解决 JUnit 中的重复测试习语

java - JFrame 将位置设置在 MAC OSX 窗口的中心

javascript - 将错误与 if 语句混淆

python - 条件语句在我的抓取工具中表现得很奇怪

java - JFrame 主题和外观