Setar valor em JFormattedTextField

6 respostas
brunofs8

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.

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);

alguem tem alguma ideia?

6 Respostas

yhhik

tente assim:

valorUnitarioField.setText(String.format ("%f",valorDouble));
brunofs8

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

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);
brunofs8

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

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);
brunofs8

Era a máscara. Eu não sabia que não funcionava com a máscara. Valeu!

Criado 5 de dezembro de 2011
Ultima resposta 5 de dez. de 2011
Respostas 6
Participantes 2