Usando o editor da GUI da NetBeans, como posso criar um campo JTextField ou JformattedText que deve ser validado em relação a uma expressão regular?

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

Pergunta

Eu tenho uma expressão 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 preciso validar a entrada de um campo de texto contra quando o usuário clica no botão OK ou move o cursor para outro campo. Que eu sei fazer, escrevendo o código. No entanto, estou interessado se for possível que o editor da GUI da NetBeans faça parte do trabalho para mim, especialmente porque estou me afastando do eclipse e em direção a Netbeans como meu IDE de escolha, e gostaria de aproveitar ao máximo das ferramentas que ele fornece.

Foi útil?

Solução

Abra as propriedades do seu JTextfield, na guia Propriedades Procure o InputVerriFier. Abra

Agora você será solicitado a introduzir o código do InputVerriFier.

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;
    }

  }
});

Eu não compilei esse código, então pode conter erros. Mas acho que você entendeu;)

Outras dicas

Esta não é a solução mais fácil, mas é muito poderosa: tente cliente rico da primavera, onde a validação pode ser alcançada via:

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);
        }
    });

...

e o formulário da GUI é facilmente criado via:

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

Por exemplo, olho aqui para validação ou Aqui para mais informações. Estou usando isso com sucesso no meu Projeto de código aberto ...

Dessa forma, você pode criar um componente de swing mais geral que poderia ser adicionado ao Paleta de componentes NetBeans

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top