Pessoal, por algum motivo, que deve ser simples, porém não estou conseguindo enxergar, eu não consigo setar um valor double em um JFormattedTextField.
já tentei com setText e setValue. Já formatei pra ficar igual a máscara do campo, etc.
[code]Double d = produtos.get(pos).getValorUnitario();
DecimalFormat df = new DecimalFormat(“00.00”);
String str = df.format(d);
System.out.println(str);
valorUnitarioField.setValue(str);
//valorUnitarioField.setText(str);[/code]
alguem tem alguma ideia?
yhhik
#2
tente assim:
valorUnitarioField.setText(String.format ("%f",valorDouble));
não, mesmo resultado.
o que eu não entendo é porque ele não está setando com um valor formatado. Quando testei com um valor qualquer entre aspas ele seta direitinho.
valorUnitarioField.setText("01.99");
yhhik
#4
cara vc tem certeza que essa linha esta atribuindo um valor?
Double d = produtos.get(pos).getValorUnitario();
copiei seu código aqui e atribuir um valor a variável d e deu certo.
double d = 50;
DecimalFormat df = new DecimalFormat("00.00");
String str = df.format(d);
System.out.println(str);
txtTeste.setText(str);
sim ela está imprimindo no println o valor correto. Mas vou testar novamente de qualquer modo.
edit: Mesmo setando um valor ao double, ela imprime o valor correto na saida do println, mas no JFormattedTextField o valor não muda.
run:
50,00
50,00
50,00
50,00
50,00
CONSTRUÍDO COM SUCESSO (tempo total: 36 segundos)
yhhik
#6
estranho… vc está usando MaskFormatter?
se tiver não funciona.
o meu está assim:
txtTeste = new JFormattedTextField();
txtTelefone.setColumns(8);
...
double d = 50;
DecimalFormat df = new DecimalFormat("00.00");
String str = df.format(d);
System.out.println(str);
txtTeste.setText(str);
Era a máscara. Eu não sabia que não funcionava com a máscara. Valeu!