E ae galera, tenho uma dúvida:
Tenho um campo do tipo JFormattedTextField . Nele possuo uma máscara para números decimais ( a cada três números eu coloco um “ponto”, representando os milhares ).
Para inseri-lo no banco eu tenho de dar um replace na “vírgula” das casas decimais e a trocar por um “ponto”, pois é assim que o MySQL reconhece, certo?
Pois bem, eu faço uma consulta em minha tabela em meu BD, recupero este valor mas quando eu seto-o no JFormattedTextField ele não fica formatado, só fica formatado quando eu o seleciono e tiro o foco do campo.
Como posso deixar este campo sempre formatado?
Também estou com o mesmo problema
alguem pode ajudar?
Obrigado
Utilize o método JFormattedTextField.commitEdit()
O engraçado é que eu fiz um teste aqui e funcionou
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
public class Class1 extends JFrame {
JFormattedTextField jftf =
new JFormattedTextField(NumberFormat.getInstance());
JButton button = new JButton("Opa");
public Class1() {
this.setLayout(new GridLayout());
this.add(jftf);
this.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jftf.setValue(new Double("1234.5"));
}
});
this.setVisible(true);
this.pack();
}
public static void main(String[] args) {
new Class1();
}
}