Mask em TextField [SOLUCIONADO]

Olá galera, blz?

Estou precisando fazer uma mascara em um textfield, deste jeito:

Tenho um textfield com preço no seguinte formato 0.00

Assim a pessoa vai digitando os valores e vai alimentando o textfield apenas com numeros, mantendo o ponto da formatacao (semelhante aos caixas eletronicos, campo de valores).

Exemplo:

Carrega: 0.00
Aperta 1, aparece: 0.01
Aperta 5, aparece: 0.15
Aperta 6, aparece: 1.56
Aperta 7, aparece: 15.67

E assim vai :stuck_out_tongue:

Quem souber fazer essa mascara em J2ME e/ou poder me dar uma luz eu agradeço.

JFormattedTextField txt = new JFormattedTextField();
try {
	MaskFormatter formatter = new MaskFormatter("##.##");
	formatter.install(txt);
  } catch (Exception e) {
		// TODO: handle exception
}

JFormattedTextField? Que classe é essa?

To trampando com J2ME… :slight_smile:

Deve ter uma parecida, a lógica é a mesma.

bom galera, eu fiz na mao mesmo, depois de procurar por algum tempo… se alguem tiver uma solucao mais pratica me avisa :wink:

if(item == get_maskedPriceField()) {
            /* Formata a mascara de preco #.## */
            String price = get_maskedPriceField().getString();
            StringBuffer priceStrBuffer = new StringBuffer();
            /* remove o ponto e vai dando append no buffer */
            for(int i = 0; i < price.length(); i++) {
                if(price.charAt(i) != '.') {
                    priceStrBuffer.append(price.charAt(i));
                }
            }
            price = null;
            /* Remove os zeros da mascara para formata-la adequadamente */
            while(priceStrBuffer.length() > 0) {
                if(priceStrBuffer.charAt(0) == '0') {
                    priceStrBuffer.deleteCharAt(0);
                } else {
                    /* Desta forma pode ser feita a comparacao entre chars acima */
                    break;
                }
            }
            /* Arruma a formatacao para o padrao #.## */
            if(priceStrBuffer.length() == 0) {
                priceStrBuffer.append("0.00");
            } else if (priceStrBuffer.length() == 1) {
                priceStrBuffer.insert(0,"0.0");
            } else if (priceStrBuffer.length() == 2) {
                priceStrBuffer.insert(0,"0.");
            } else {
                priceStrBuffer.insert(priceStrBuffer.length() - 2, ".");
            }
            /* volta para o textfield*/
            get_maskedPriceField().setString(priceStrBuffer.toString());
            priceStrBuffer = null;
            
}

Esse get_masked retorna o textfield que eu to usando no momento, esse if vai no itemStateChanged(Item item)
Eu to usando j2mepolish pra formatacoes, se alguem tiver interesse em aprender um pouco de polish me avisa ai.

Abracos!

Cara eu tenho interese em usar o Polish…

Com qual IDE vc utiliza ele.

Ele é bom mesmo facilita a programação???

Muito Obrigado pela sua atenção

Conselho: esquece JFormattedTextField. Dao muito trabalho e sempre buga.

Utilize InputVerifiers. Procure no Google sobre eles.

Dae passoal, alguem sabe como fazer uma mascara para TextField do tipo XXX0000.

Galera gostaria de fazer uma mascara para trabalhar com valores monetarios (Reais), a medida que o usuário
for digitando os valores o sistema já vai montando.

Desenhe o seu próprio componente usando CustomItem e seja feliz.

Dá um trabalho legal mas funciona.

Se vc tiver mesmo precisando, tenho certeza que fará.