to com problemas ao trocar ponto por vírgula , dei umas pesquisadas pela net e encontrei o seguinte código
que funciona legal,
só que queria fazer isso enquanto o usuário digitar ponto, alterar para vírgula.
teria que colocar isso detntro de um evento certo?
meu código
txtDesconto.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent arg0) {
String valor = txtAcrescim.getText();
valor = valor.replace(".", ",");
JOptionPane.showMessageDialog(null, valor);
}
});
[quote]
só que queria fazer isso enquanto o usuário digitar ponto, alterar para vírgula.
teria que colocar isso detntro de um evento certo? [/quote]
Sim, so que se eh para checar a validação de um campo apos a digitacao, no seu caso seria o evento KeyReleased.Mas eu não recomendo o uso disso para validar entrada de dados.
Recomendo ler esse tutorial do guj:
não sei se eu intendi direito, mas você quer substituir coforme a pessoa digita, a virgula por ponto?
no seu código é só você chamar txtAcrescim.setText(valor); no lugar do seu joptionpane, que vai substituir o exto dele pelo texto substituido, conforme a pessoa digita.
[code]txtDesconto.addKeyListener(new KeyAdapter() { @Override
public void keyPressed(KeyEvent arg0) {
String valor = txtAcrescim.getText();
valor = valor.replace(".", “,”);
txtAcrescim.setText(valor);
JOptionPane.showMessageDialog(null, valor); //isso nao é de verdade necessário
amigo usa esse codigo pois ele realmente troca virgula por ponto em tempo de execução, utilizo ele pois o banco de dados que utilizo usa no Double ponto ao invés de virgula
ae vai o codigo
[quote=andrehacker15]amigo usa esse codigo pois ele realmente troca virgula por ponto em tempo de execução, utilizo ele pois o banco de dados que utilizo usa no Double ponto ao invés de virgula
ae vai o codigo
private void tf_limiteKeyReleased(java.awt.event.KeyEvent evt) {
tf_limite.setText(tf_limite.getText().replace(",", “.”));
} [/quote]
Não é uma boa prática e pode originar alguns problemas como o deste post aqui: http://www.guj.com.br/java/285086-posicao-do-cursor-em-um-jtextfield
Amigo, no caso do post que voce mostrou esta dando erro pois o jtextfield esta setando valores 3 vezes sendo que ele ira fazer isso sempre podendo ocasionar em um overflow, realmente não teria como, no meu caso setei apenas uma exsessão que seria trocar virgulas por pontos, foi testado varias vezes e inclusive o quando que teria que consumir da maquina, não apresentou nenhum erro e nem no antibug do netbeans foi detectado.
[quote=andrehacker15]Amigo, no caso do post que voce mostrou esta dando erro pois o jtextfield esta setando valores 3 vezes sendo que ele ira fazer isso sempre podendo ocasionar em um overflow, realmente não teria como, no meu caso setei apenas uma exsessão que seria trocar virgulas por pontos, foi testado varias vezes e inclusive o quando que teria que consumir da maquina, não apresentou nenhum erro e nem no antibug do netbeans foi detectado. [/quote]
Não vai apresentar “erros”, o que eu disse é que pode originar alguns problemas como o que está no outro post (cursor).
Tente escrever “1234567” e mover o cursor após o dígito 2 e escrever mais quatro caracteres neste espaço (entre o 2 e o 3)… A menos que você tenha feito alguma gambiarra para tratar o caretPosition, o cursor sempre irá parar na posição final do texto… Era disso que eu me referia.
Mesmo setando o texto 500 vezes não irá causar um overflow, como você falou. Isso só vai acontecer se o set estiver em uma recursão infinita.