数字和字符串的jTextField验证?

时间:2016-09-17 14:10:41

标签: java validation textbox

我想在java中为textfield设置自己的验证。例如,假设我希望用户输入 10d2-5 100d2 23d5 等值,而不是 aa25- 22 即可。我可以使用MaskFormatter来做到这一点,但问题是,如果我将其格式设置为(## d#),它就不会接受三位数字。这是我的代码:

JFormattedTextField textField = new JFormattedTextField();
MaskFormatter dateMask = new MaskFormatter("##.#");
dateMask.install(textField);

1 个答案:

答案 0 :(得分:0)

这是一个可以帮助您入门的InputVerifier示例:

import java.text.ParseException;
import javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import javax.swing.JTextField;

public class Test {

      public static void main(String[] args) throws ParseException
      {

          JTextField textField = new JFormattedTextField();
          textField.setInputVerifier(new MyInputVerifier());
      }
}

class MyInputVerifier extends InputVerifier {

      public MyInputVerifier() {}

      @Override
    public boolean verify(JComponent input) {

        JTextField textField = (JTextField) input;
        String validate = textField.getText();
          if (validate !=null /* replace with relevant tests cosde */) {

              return true;
          } else {

              return false;
          }
      }
  }