有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数字和字符串的java jTextField验证?

我想在java中为textfield设置自己的验证。例如,假设我希望用户输入像10d2-5100d223d5,而不是像aa25-22。我可以使用MaskFormatter来实现这一点,但问题是如果我将其格式设置为(##d#),它将不接受三位数。这是我的密码:

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

共 (1) 个答案

  1. # 1 楼答案

    下面是一个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;
              }
          }
      }