Java 如何生成if-else语句来检查文本框是否包含特定字符串

Java 如何生成if-else语句来检查文本框是否包含特定字符串,java,awt,Java,Awt,正在尝试用Java和AWT创建登录表单。说明书上说,唯一有效的用户名和密码分别是“name”和“12345”。如何生成if-else语句来检查文本框是否包含这些特定字符串 public static void main(String[] args) { Frame fm= new Frame ("My Login Form"); fm.setSize (600,400); fm.

正在尝试用Java和AWT创建登录表单。说明书上说,唯一有效的用户名和密码分别是“name”和“12345”。如何生成if-else语句来检查文本框是否包含这些特定字符串

    public static void main(String[] args) {
        
            Frame fm= new Frame ("My Login Form");
            fm.setSize (600,400);
            fm.setLayout (null);
            fm.setVisible (true);
            
            Label lblUsername= new Label("Username");
                lblUsername.setBounds(40,40,100,50);
                fm.add(lblUsername);
            
            TextField txtName,txtPass;
             
             txtName = new TextField();
                txtName.setBounds (150,50,200,25);
                fm.add(txtName);
             
            Label lblPassword= new Label ("Password");
                lblPassword.setBounds (40,80,100,50);
                fm.add(lblPassword);
            
              txtPass = new TextField();
                txtPass.setBounds (150,100,200,25);
                fm.add(txtPass);   
            
            Button btnLogin,btnClear,btnExit;
            
            btnLogin= new Button("Login");
                btnLogin.setBounds (40,120,60,35);
                fm.add(btnLogin);
                btnLogin.addActionListener((ActionEvent e) -> {
                    
                if ( txtName.contains("name") && lblPassword.contains("12345"))
                { 
                }
                else
                {
               
                }
            }); 
   }
}

您已接近您的解决方案。 使用==,而不是使用contains

Contains将为“name123”和“name”返回true。您只需严格检查“名称”

检查以下代码:

if ( txtName == "name" && lblPassword == "12345")
{ 
// match successfull
}
else
{
 // throw error           
}
如果需要,还可以嵌套if条件:

 if ( txtName == "name")
  if (lblPassword == "12345")
    { 
    // match successfull
    }
    else
    {
     // throw error           
    }
由于txtName和lblPassword分别不是字符串而是TextField和Label对象,因此必须使用Java的方法getText()equals()来检查文本值是否相同。使用=而不是equals()将比较字符串的内存地址,而不是它们包含的文本,因此它们总是不同的。这个if语句应该可以正常工作:

if (txtName.getText().equals("name") && lblPassword.getText().equals("12345"))

我得到一个错误,说Textfield和String是不兼容的类型。现在使用getText()函数从Textfield获取值。像这样->txtName.getText()=“name”