来自JTextField的getText()返回的内容更多。使用if-else

时间:2014-05-04 14:26:54

标签: 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");
    }else{
        textArea.append(text + newline);
    }

这将显示" work"对我来说。

为了方便起见,我使用oracle教程测试它以查看我的JTextField http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/uiswing/examples/components/TextDemoProject/src/components/TextDemo.java

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您不理解或不了解Strings如何在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中使用的字符串“工作”的对象不同。因此,您需要比较它们的内容,即,您需要验证这两个不同的String对象是否具有相同的值。

我推荐以下链接:

http://docs.oracle.com/javase/tutorial/java/data/strings.html(你必须阅读完整的String教程) http://javarevisited.blogspot.com.br/2013/07/java-string-tutorial-and-examples-beginners-programming.html这不是官方文档,但没关系。特别注意itens 3和4