Uma classe para JText interessante

gente com a ajuda de vcs aqui
consegui criar uma classe que acho muito boa principalmente
para quem esta comecando
a classe e simples
porem ela tem alguns parametros para o jtext
como o tipo do text que sera coletado
ou seja se e uma string, se e um numero, quantidade de inteiros, quantidade de decimais,
se so vai aceitar maiuscula, se so vai aceitar minuscula
em fim
ficou muito legal

e como eu tive bastante a ajuda do pessoal aqui
resolvi disponibiliza-la para todos…

para usar esta classe
que pode ser utilizada para qualquer campo JText
vc deve fazer o seguinte:

DefineCampo doc = new DefineCampo(“Numero”,10,3,".");
jTextExemplo.setDocument(doc);

funciona e e muito legal
facam um bom uso…

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    /
    /
    *
  • @author Jonas
    /
    /
  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.PlainDocument;

/**
*

  • @author Jonas
    */
    public class DefineCampo extends PlainDocument {

    /*

    • Wtipo = StrUpper -> string aceitando apenas maiusculas
    •   = StrLower -> string aceitando apenas minusculas
      
    •   = String   -> aceitando qualquer string
      
    •   = Numero   -> so aceita numeros
      
    • wmaxcols = numero de colunas ou numero total de inteiros em caso de numero
    • wqtddec = em caso de numero e a quantidade de decimais
    • wtipochardec = caracter separador de decimais ("," our “.”)

    */
    String wtipo;
    int wmaxcols;
    int wqtdint;
    int wqtddec;
    String wtipochardec;
    String stratu;

    public DefineCampo(String tipo, int maxcols, int qtddec, String tipochardec) {
    wtipo = tipo;
    wmaxcols = maxcols;
    wqtdint = maxcols;
    wqtddec = qtddec;
    wtipochardec = tipochardec;
    if (wtipo.equals(“Numero”)) {
    wmaxcols = maxcols + qtddec;
    if (qtddec != 0) {
    wmaxcols = wmaxcols + 1; //devido ao ponto decimal
    }
    }
    }

    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
    stratu = getText(0, getLength()); // pegando a string antes do prox char

     if (str == null) {
         return;
     }
    

// se ja chegou ao numero maximo de caracteres nao aceitar mais nenhum

    if (getLength() == wmaxcols) {
        return;
    }

// se for numero

    if (wtipo.equals("Numero")) {
        // se o campo for numero e a quantidade de decimais igual a zero
        // nao permitir a digitacao de "." ou "," decimal

        if (wqtddec == 0) {
            if (str.equals(".") || str.equals(",")) {
                return;
            }
        }
        if (!Character.isDigit(str.charAt(0)) && !str.equals(wtipochardec)) {
            return;
        }
        // nao permitir digitar tipo de caractere separador de decimais
        // repetidos se o campo for numerico ou qtddecimais <> 0
        if (str.equals(wtipochardec)) {
            if (wqtddec != 0) {
                for (int i = 0; i < getLength(); i++) {
                    if (wtipochardec.charAt(0) == getText(0, getLength()).charAt(i)) {
                        return;
                    }
                }
            }
        }
        // verificando quantidade de inteiros
        if (!stratu.contains(wtipochardec)
                && (!str.equals(wtipochardec))) {
            if (stratu.length() != 0) {
                for (int i = 0; i < stratu.length(); i++) {
                    if (Character.isDigit(stratu.charAt(i))) {
                        if ((i + 1) == wqtdint) {
                            return;
                        }
                    } else {
                        break;
                    }
                }
            }
        }
        if (stratu.contains(wtipochardec)) {
            int b = 0;
            boolean x = false;
            for (int i = 0; i < stratu.length(); i++) {
                int u;
                u=i+1;
                if (wtipochardec.equals(stratu.substring(i,u))){
                    x = true;
                } else {
                    if (x) {
                        b++;
                        if (b == wqtddec) {
                            return;
                        } 
                    }
                }
            }
        }

        super.insertString(offs, str, a);
        return;
    }

    if (wtipo.equals("String")) {
        super.insertString(offs, str, a);
    }

    if (wtipo.equals("StrUpper")) {
        String st;
        st = str.toUpperCase();
        str = st;
        super.insertString(offs, str, a);
    }

    if (wtipo.equals("StrLower")) {
        String st;
        st = str.toLowerCase();
        str = st;
        super.insertString(offs, str, a);
    }
}

}[/code]