Axei uns tópicos aqui no guj sobre formatação de JFormatedTextField, mas esta me retornando uma exception que não estou conseguindo resolver, sei oque é mas não consegui resolver
Estou fazendo do seguinte modo a formatação:
DefaultFormatterformatter=newNumberFormatter(newDecimalFormat("#,##0.00");ftxtValorUnitario.setFormatterFactory(newDefaultFormatterFactory(formatter));ftxtValorTotal.setFormatterFactory(newDefaultFormatterFactory(formatter));//dentro do evento do botao estou fazendo o seguinteStringtextUnitario=ftxtValorUnitario.getText();StringtextTotal=ftxtValorTotal.getText();StringvalueUnitario=textUnitario.replaceAll("\.","").replaceAll(",",".");StringvalueTotal=textTotal.replaceAll("\.","").replaceAll(",",".");doubleValorUnitario=(Double)formatter.stringToValue(valueUnitario);//A exception aponta nessa linhadoubleValorTotal=(Double)formatter.stringToValue(valueTotal);
Mas esta me retornando a seguinte exception:
Teria alguma outra forma de fazer essa formatação??
Desde já Agradeço!!!
cara ClassCastException a formatação retorna um Long e não um Double.
O que tu pode tentar e converter.
…
Ainda vai dar errado. Já perceberam que o cast que vocês estão executando são de Wrappers e que a variável é um tipo primitivo? E formatador não retorna simplesmente um Long, pois o formatador é de decimal, então o mínimo que ele retorna e um Float.
Até!
Micke
Obrigado pela resposta dos dois… maquiavelbona mudei o cast pra float e tambem não funcionou retornou a mesma exception… tem alguma outra dica??? vlw
vanzella
maquiavelbona:
vanzella:
cara ClassCastException a formatação retorna um Long e não um Double.
O que tu pode tentar e converter.
…
Ainda vai dar errado. Já perceberam que o cast que vocês estão executando são de Wrappers e que a variável é um tipo primitivo? E formatador não retorna simplesmente um Long, pois o formatador é de decimal, então o mínimo que ele retorna e um Float.
Até!
Ola maquiavelbona, não sei se você leu o que a vm disse, mas vai ela ai de novo:
O tipo de retorno do método formatter.stringToValue é um Object, que em tempo de execução é um Long, ou sera que a vm não sabe o que fala? outra coisa, o codigo funciona sim, a não ser que utilize java 1.4
Micke
Realmente vanzella foi como vc disse foi so colocar Long no cast que funcionou… vlw man obrigado pela ajuda…
Mas esta acontecendo o seguinte agora, nao estou conseguindo colocar os centavos, por exemplo:
se eu digitar 12 ele automaticamente transforma para 12,00 mas se eu tentar apagar os zeros e coloar 12,35 ele coloca 1.235,00… nao ta dando pra colocar os centavos!!!
To axando que é pq o tipo de formatação que eu apliquei na FormatedTextField :x
Alguem teria uma dica???
Desde já Agradeço!!!
vanzella
Micke:
Realmente vanzella foi como vc disse foi so colocar Long no cast que funcionou… vlw man obrigado pela ajuda…
Mas esta acontecendo o seguinte agora, nao estou conseguindo colocar os centavos, por exemplo:
se eu digitar 12 ele automaticamente transforma para 12,00 mas se eu tentar apagar os zeros e coloar 12,35 ele coloca 1.235,00… nao ta dando pra colocar os centavos!!!
To axando que é pq o tipo de formatação que eu apliquei na FormatedTextField :x
Alguem teria uma dica???
Desde já Agradeço!!!
da uma olhada, ve se resolve seu problema.(conversão e formatação)