Como habilitar pro usuário colocar valors negativos em um formatedtextfield?

6 respostas
V

Olá pessoal tudo bem?
Estou usando os formattedtextfields com uma máscara
##,## que pode ser tanto um valor positivo, quanto um valor negativo.
Só que o meu textfield não está aceitando valores negativos.
Só aceita valores numéricos…

Como faço

6 Respostas

T

Aham, a máscara não seria “##.##” ?
(Você continua entrando com 12,34 se o seu “locale” for Português/Brasil)

V

Então, acabei não completando…

Como faço para o formattedtextfield aceitar valores negativos, pois quando coloco ##,## na máscara ele só aceita números

T

Acho que preciso deixar em letras maiores. (Acostume-se a procurar diferenças entre vírgulas e pontos, tanto em programação, quanto em leitura de textos em português; assim como a diferença entre maiúsculas e minúsculas. Reconheço que isso é muito chato)

[size=24]##,##[/size] é diferente de [size=24]##.##[/size]

A vírgula, em DecimalFormat, é um separador de milhares. É o ponto, em DecimalFormat, que é usado para separar a parte inteira da decimal.
De qualquer maneira, o que ocorre se você usar “-##.##” ?

V

Fica assim
O negativo fica fixo, e o resto fica normal…

thiagossantos

acho q o DecimalFormat aceita negativos e positivos, tenta mudar de “##.##” para “00.00”, vai ver # eh diferente de 0. mas se não der certo escrevi uma solução possível.

vc pode usar um if
por exemplo

valorX //o número que você está usando
formatopositivo // DecimalFormat(##.##)
formatonegativo // DecimalFormat(-##.##)

if(valorX >= 0) { formatopositivo.format(valorX); } else { valorX = Math.abs(valorX); //pega o valor em módulo formatonegativo.format(valorX); }

isto serve?

thiagossantos

de uma lida no http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

pode ajudar, pelo que eu entendi (acabei de dar uma lida rápida) o “#” tem função diferente do “0”, o “0” engloba negativos também. Confere lá e testa.

[]'s

Criado 27 de abril de 2005
Ultima resposta 28 de abr. de 2005
Respostas 6
Participantes 3