我试着给我们一个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
答案 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