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