首页 > 解决方案 > 检查扩展 jTextFormattedField 是否为空

问题描述

我有一个扩展 jFormattedTextField 并且在这个字段中,我有一种方法来验证它是否为空,但在 jTextField 中它可以工作,但在 jFormattedTextField 中没有。

当我传递框架上的字段时:

RVDFormattedTextField[] obrigatoriosFTF = new RVDFormattedTextField[1];
    private void setaObrigatorios() {
        obrigatoriosFTF[0] = rvfCNPJ;
    }
if (RVDFormattedTextField.isEmpty(obrigatoriosFTF)) {
            Mensagem.aviso("Preencha os campos obrigatórios (*).", this);
        } else {

jFormattedTextField 中的方法:

public static boolean isEmpty(RVDFormattedTextField[] campos) {
        Boolean ok = false;
        for (int i = 0; i < campos.length; i++) {
            if (Formatacao.removerFormatacao(campos[i].getText()).trim().isEmpty()) {
                ok = true;
                if (campos[i].isEditable()) {
                    campos[i].setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 51, 51)));
                }
            } else {
                campos[i].setBorder(javax.swing.BorderFactory.createEtchedBorder());
            }
        }
        return ok;
    }

不显示错误,尝试在方法中添加一个 sout 并进行调试,但没有任何反应。

方法移除器Formatacao

    public static String removerFormatacao(String dado) {
        String retorno = "";
        for (int i = 0; i < dado.length(); i++) {
            if (dado.charAt(i) != '.' && dado.charAt(i) != '/' && dado.charAt(i) != '-' && dado.charAt(i) != '(' && dado.charAt(i) != ')') {
                retorno = retorno + dado.charAt(i);
            }
        }
        return (retorno);
    }

方法 formatarCNPJ(掩码)

    public static void formatarCnpj(JFormattedTextField campo) {
        try {
            MaskFormatter m = new MaskFormatter();
            m.setPlaceholderCharacter(' ');
            m.setMask("##.###.###/####-##");
            campo.setCaretPosition(0);
            campo.setFormatterFactory(null);
            campo.setFormatterFactory(new DefaultFormatterFactory(m));
            campo.setValue(null);
        } catch (Exception e) {
            System.err.println(e);
        }
    }

我试图删除这两种方法,但它仍然不起作用。

标签: javajformattedtextfield

解决方案


那么,JFormattedText 上使用了哪个掩码,Formatacao.removerFormatacao实现如何?


推荐阅读