複数のテキスト ボックスの入力を検証しようとしています (つまり、数値である必要があります)。以下の便利なコード スニペットを見つけました。
ただし、3 つのテキスト ボックス ( text
、moreText
および) がある場合、( ) コードを 3 回evenMoreText
繰り返さずに、同じ機能を持つ検証リスナーをそれぞれに適用するにはどうすればよいでしょうか?.addVerifyListener(new VerifyListener() {...
switch ステートメントなど (どのテキスト ボックスに適用するかを決定するため) を実装したくありません。より一般的なものが必要です (将来、他のクラスで使用できるようにすることができます)。
text.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent e) {
final String oldS = text.getText();
final String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end);
try {
BigDecimal bd = new BigDecimal(newS);
// value is decimal
// Test value range
} catch (final NumberFormatException numberFormatException) {
// value is not decimal
e.doit = false;
}
}
});