A good way or way to perform a action when you stop writing in the JTextField would be to use the Win or lose focus event with the FocusListener interface and the respective addFocusListener () belonging to java.awt.Component which calls that action .
txtValorCompra.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
//que hacer cuando ganamos el foco
}
@Override
public void focusLost(FocusEvent e) {
//que hacer cuando se pierda el foco
String numCadena = "";
if (txtValorCompra.getText().trim().equals("")) {
numCadena = "0.00";
} else {
numCadena = txtValorCompra.getText();
}
double numEntero = Double.parseDouble(numCadena);
area.setText(String.valueOf(numEntero));
}
});
I'll give you an example:
public class JTextFieldTest extends JFrame {
public JTextFieldTest() {
JFrame.setDefaultLookAndFeelDecorated(true);
this.setBounds(300, 300, 350, 300);
JTextArea area = new JTextArea();
JTextField txtValorCompra = new JTextField(20);
txtValorCompra.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
}
@Override
public void focusLost(FocusEvent e) {
String numCadena = "";
if (txtValorCompra.getText().trim().equals("")) {
numCadena = "0.00";
} else {
numCadena = txtValorCompra.getText();
}
double numEntero = Double.parseDouble(numCadena);
area.setText(String.valueOf(numEntero));
}
});
JPanel panel = new JPanel();
JLabel label = new JLabel();
label.setText("Valor: ");
panel.add(label);
panel.add(txtValorCompra);
this.add("North", panel);
this.add("South", area);
}
public static void main(String[] args) {
JTextFieldTest jt = new JTextFieldTest();
jt.setDefaultCloseOperation(EXIT_ON_CLOSE);
jt.setVisible(true);
}
}