Ao Jair Elton,
Sobre o assunto como criar separadores de milhares, eu criei uma classe mais simples possível, chamei de Text1.class, com um JTextField apenas, mais nada. Eu desejo escrever números grandes, como por exemplo, o número 32765234,65 , e ao dar enter, ele converteria para
32.765.234,65
Na Text1.class eu apenas tenho um JTextField, mas não faz a conversão. Veja a minha classe:
import java.awt.*;
import javax.swing.*;
public class Text1 extends JFrame
{
JTextField T1;
public Text1()
{
super("Título");
Container tela = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
tela.setLayout(layout);
JTextField T1 = new JTextField(10);
tela.add(T1);
setSize(300,100);
setVisible(true);
}
public static void main(String args[])
{
Text1 app = new Text1();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Com base na sua resposta ao meu pedido de ajuda, eu criei uma outra classe Text2.class, utilizando seu código e coloquei a parte que faz a operação de criar separadores de milhares, e entrei com isto no meu código acima, e virou isto:
import java.awt.*;
import javax.swing.*;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.util.Formatter;
public class Text2 extends JFrame
{
JTextField T1;
public Text2()
{
super("Título");
Container tela = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
tela.setLayout(layout);
JTextField T1 = new JTextField(10);
tela.add(T1);
T1.addFocusListener(new FocusAdapter(){
public void focusLost(FocusEvent fevt){
JTextField T1 = (JTextField)fevt.getSource();
Formatter formatador = new Formatter();
formatador.format("%,.2f", Double.parseDouble(T1.getText().replace(',', '.')));
T1.setText(formatador.toString());
}
});
setSize(300,100);
setVisible(true);
}
public static void main(String args[])
{
Text2 app = new Text2();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Mas está dando erro ao tentar compilar a Text2.java. O erro é:
Cannot resolve symbol Formatter.
Se você souber onde está este erro, agradeço Jair.
Abraço,
Marco