Lendo dados de trás pra frente ( ? )

2 respostas
V

E ae pessoal, tô com um caso muito estranho aqui numa aplicação minha.

É o seguinte… Através de um JTextField eu insiro um dado qualquer em uma tabela em meu banco MySql.
Quando vou resgatar esse dado, a minha consulta retorna os dados certos, mas de trás pra frente.
Deixe eu tentar exemplificar… eu insiro “ana”, mas a consulta me retorna “ana” ao invés de “ana”… Hheiuehiuehiue :stuck_out_tongue:
Brincadeira… Eu insiro “12345” e me retorna “54321”… Muito estranho, não?

Alguém sabe o que está acontecendo? Como posso resolver?
E detalhe, os outros campos retornam com seus valores corretos, é só em um determinado campo.

2 Respostas

Thiago_Luis

Fala cara, blza?

Acho que só vou poder compartilhar meu espanto :shock:
Meu, sei lá, para esse determinado campo, vc fez alguma rotina, cirou algum método???
Posta o código ai pra gente dar uma olhada.

Cara, muito esquisito.

Abraço.

V
Thiago Luis:
Fala cara, blza?

Acho que só vou poder compartilhar meu espanto :shock:
Meu, sei lá, para esse determinado campo, vc fez alguma rotina, cirou algum método???????????
Posta o código ai pra gente dar uma olhada.

Cara, muito esquisito.

Abraço.

E ae Thiago...
descobri ONDE está o problema, porém, não sei como resolve-lo...
Eu "configurei" esse meu JtextField para receber somente números, 14 números para ser mais específico...
Abaixo o código da classe que faz esse tratamento:

public class SomenteNumeros extends PlainDocument {

    private int iMaxLength;

      public SomenteNumeros(int maxlen) {
        super();
        iMaxLength = maxlen;
    }

    @Override
    public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
        

        if (str == null) {
            return;
        }

        if (iMaxLength <= 0) // aceitara qualquer no. de caracteres
        {
            super.insertString(offset, str, attr);
            return;
        }

        int ilen = (getLength() + str.length());
        if (ilen <= iMaxLength) // se o comprimento final for menor...
        {
            for (int i = 0; i < str.length(); i++) {
                //isDigit() verifica se é um numero, se não for ignora...
                if (Character.isDigit(str.charAt(i))) {
                    //se for insere no documento
                    super.insertString(offset, Character.toString(str.charAt(i)), attr);
                }
            }
        } else {
            if (getLength() == iMaxLength) {
                return; // nada a fazer
            }
            String newStr = str.substring(0, (iMaxLength - getLength()));

            super.insertString(offset, newStr, attr);
        }
    //percorre a String inserida...

    }
}

A chamada eu faço em uma outra classe deste jeito:

txt.setDocument(new SomenteNumeros(n));
onde n é :
private final static int n = 14;

Veja se consegue me ajudar carinha... Vlw!

Criado 23 de maio de 2009
Ultima resposta 23 de mai. de 2009
Respostas 2
Participantes 2