我想验证我的其他JTextField
使用InputVerifier
方法。我做了什么,我使用setName
设置了一个不同的JTextField
。getName方法无法验证JTextField从其他类
private void validateJTextField()
{
tfAddress.setName("tfAddress");
tfLastName.setInputVerifier(new Validation());
tfFirstName.setInputVerifier(new Validation());
tfMiddleName.setInputVerifier(new Validation());
tfNickname.setInputVerifier(new Validation());
tfAddress.setInputVerifier(new Validation());
}
验证类
public class Validation extends InputVerifier
{
@Override
public boolean verify(JComponent input)
{
String text = null;
String name = input.getName();
if(input instanceof JTextField)
{
text = ((JTextField) input).getText();
if(text.trim().length() == 0 || text.equals(""))
{
JOptionPane.showMessageDialog(null, "Cannot left blank");
return false;//Return false if the component need to keep focus
}
else
{
try
{
Double.parseDouble(text);
JOptionPane.showMessageDialog(null, "Cannot insert numeric");
return false;
}
catch(NumberFormatException e)
{
}
}
if(text.equals("") && name.equals("tfAddress"))
{
System.out.print("This is tfAddress");
return false;
}
}
return true;//Return true if the component should give up focus
}
}
正如你可以在这里看到我试图验证或检查name
字符串是等于"tfAddress"
但不幸的是它不会满足的条件。任何帮助或提示我如何解决这个问题?
你想用你的代码实现什么逻辑?你如何测试它,控件的文本是什么?被validateJTextField调用了吗?如果是这样,在哪里以及如何? –
@LajosArpad Arpad我只是想验证'JTextFields'是否等于''tfAddress“'如果它是真的,它可以接受数字和字符。在构造函数中调用了“validateJTextField”。 – Francisunoxx
弗朗西斯,如果你调试你的代码,并去到你认为你的问题是什么是文本的价值和在关键情况下名称的价值是什么? –