メソッドを使用して他のJTextField
を確認したかったのですが、私は何を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
Francis、あなたのコードをデバッグし、あなたの問題がテキストの価値であると思う行に行き、クリティカルなケースでは名前の値は何ですか? –