Java检查两个JTextField是否具有相同的内容

Java检查两个JTextField是否具有相同的内容,java,swing,jtextfield,gettext,Java,Swing,Jtextfield,Gettext,我有两个jtext1和txf2字段 在这两种语言中,我输入了相同的内容(例如:“test”) 我发表了以下声明: if (txf1.getText() == txf2.getText()) { System.out.println("Equal"); } else { System.out.println("Error"); } 为什么它会打印出错误消息?我甚至制作了一个System.out.println(txf1.getText())和System.out.println(

我有两个jtext1和txf2字段

在这两种语言中,我输入了相同的内容(例如:“test”)

我发表了以下声明:

if (txf1.getText() == txf2.getText()) {
    System.out.println("Equal");
} else {
    System.out.println("Error");
}
为什么它会打印出错误消息?我甚至制作了一个
System.out.println(txf1.getText())
System.out.println(txf2.getText())
,看起来相同,但打印出错误消息?

使用该方法比较字符串<代码>=仅比较对象引用
equals
比较字符串的实际内容

您的代码应该是这样的:

if (txf1.getText().equals(txf2.getText())) {
  System.out.println("Equal");
} else {
  System.out.println("Error");
}

Java中的字符串比较是使用
String#equals
来完成的,使用
=
意味着您正在比较对象的内存引用,当您认为应该时,它不会总是返回
true

试试更像

if (txf1.getText().equals(txf2.getText())) {

…相反

您也可以使用此良好做法,使文本框条目更高效

if (txf1.getText().trim().equals(txf2.getText().trim())) {