If statement JavaFX TextField.getText()意外结果
我用JavaFX编写了这段代码:If statement JavaFX TextField.getText()意外结果,if-statement,javafx,textfield,If Statement,Javafx,Textfield,我用JavaFX编写了这段代码: tfb.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle (ActionEvent e) { if(tf1.getText() == "test") { System.out.println("correct"); } else { System.out.print
tfb.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle (ActionEvent e) {
if(tf1.getText() == "test") {
System.out.println("correct");
} else {
System.out.println("wrong");
}
}
});
tfb.setOnAction(新的EventHandler(){
@重写公共无效句柄(ActionEvent e){
if(tf1.getText()=“测试”){
系统输出打印项次(“正确”);
}否则{
System.out.println(“错误”);
}
}
});
当我在文本字段中输入“test”时,我总是得到一个由代码打印的“错误”,而不是应该的“正确”。我检查了好几次“test”拼写是否正确,并尝试将“test”放在引号中(双引号:“
和单引号:”
),这些都没有帮助
我已经尝试打印出文本字段的内容(使用System.out.Println(tf1.getText())
),并且我在控制台的文本字段中得到了我写的内容,因此操作侦听器和tf1.getText()
肯定可以工作
我的代码可能有什么问题?尝试用以下代码替换if
if(tf1.getText().toString().equalsIgnoreCase("test")){
System.out.println("correct");
} else {
System.out.println("wrong");
}
顺便说一句:
”
-引号仅用于字符。编译器只允许您在这些字符之间添加一个字符。TextField.getText
返回一个字符串,问题并不表示应忽略字母的大小写…对于字符串比较,您应该使用。equals或equalsIgnoreCase而不是“==”,最好使用equalsIgnoreCase,如果不区分大小写