Java 来自JTextField的getText()返回的内容多于该字段中的内容。使用if-else

Java 来自JTextField的getText()返回的内容多于该字段中的内容。使用if-else,java,string,if-statement,jtextfield,Java,String,If Statement,Jtextfield,我试图给我们一个if-else语句来检查他们是否在TextField中键入了特定的内容,但它永远不会返回true。我怎样才能让它工作,或者有工作可以做 String text = textField.getText(); if(text == "work"){ textArea.append("Text was " + text + newline); textArea.append("If you see this then it worked"

我试图给我们一个if-else语句来检查他们是否在TextField中键入了特定的内容,但它永远不会返回true。我怎样才能让它工作,或者有工作可以做

    String text = textField.getText();
    if(text == "work"){
        textArea.append("Text was " + text + newline);
        textArea.append("If you see this then it worked");
    }else{
        textArea.append(text + newline);
    }
这将为我显示“工作”

为了方便起见,我使用oracle教程对此进行了测试,以查看我的JTextField

之所以发生这种情况,是因为您不理解或错误理解字符串在Java中的工作原理。 字符串是对象,通常需要使用equals方法比较它们(它们的内容)。因此,您需要在
if
中使用此选项:

// equals will return true if the content of the text field is
// the same as the string used in the comparison, i.e., "work"
if ( text.equals( "work" ) ) {   
    // do something
}
您的代码不起作用,因为文本字段中的字符串与您在if中使用的字符串“work”不是同一个对象。因此,您需要比较它们的内容,也就是说,您需要验证这两个不同的字符串对象是否具有相同的值

我推荐以下链接:

(您必须阅读整个字符串教程) 这不是官方文件,但可以。请特别注意ITEN 3和ITEN 4