Usando el editor NetBeans GUI, ¿cómo puedo crear un campo JTextField o JFormattedText que debe ser validada con una expresión regular?

StackOverflow https://stackoverflow.com/questions/1378978

Pregunta

Tengo una expresión regular (\d{4}\w{3}(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])([0-5][0-9]){2}) que necesito para validar la entrada de un campo de texto en contra cuando el usuario hace clic en el botón OK o mueve el cursor a otro campo. Que yo sepa cómo hacerlo, escribir el código. Sin embargo, me interesa si es posible tener el editor de interfaz gráfica de usuario NetBeans haga parte del trabajo para mí, sobre todo porque yo estoy alejando de Eclipse y NetBeans como hacia mi IDE de elección, y me gustaría aprovechar al máximo de las herramientas que proporciona.

¿Fue útil?

Solución

Abrir las Propiedades de su JTextField, en el aspecto ficha Propiedades de InputVerifier. Abrirlo

Ahora se le pedirá introducir el código InputVerifier.

ftf2.setInputVerifier(new InputVerifier() {
  public boolean verifyText(String textToVerify) {
     Pattern p = Pattern.compile("your regexp");
     Matcher m = p.matcher(textToVerify);
        if (m.matches()) {
        setComponentValue(textToVerify);
        return true;
    }
    else {
        return false;
    }

  }
});

No he compilado el código, por lo que podría contener errores. Pero creo que la idea;)

Otros consejos

Esta no es la solución más fácil, pero es muy poderoso: tratar muelle de cliente rico , donde la validación se podría llegar a través de:

public class Validation extends DefaultRulesSource {

private Constraint NAME_VALIDATION = all(new Constraint[]{minLength(3), required()});

public void load() {
    addRules(new Rules(Person.class) {

        @Override
        protected void initRules() {
            add("name", NAME_VALIDATION);
        }
    });

...

y la forma GUI se crea fácilmente a través de:

    TableFormBuilder formBuilder = getFormBuilder();
    formBuilder.add("firstName");
    formBuilder.add("name");
    formBuilder.row();

por ejemplo. mirar aquí para la validación o aquí para más informaciones sobre . Estoy usando este con éxito en mi proyecto de código abierto ...

De esta manera se puede crear un componente de oscilación más general que se podría añadir a las href="http://wiki.netbeans.org/FaqFormUsingCustomComponent" paleta de componentes

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top