import java.text.NumberFormat;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
import javax.swing.text.NumberFormatter;
public class Main {
NumberFormatter formatter = new NumberFormatter(NumberFormat.getNumberInstance());
DocumentListener listener;
JFormattedTextField input = new JFormattedTextField(formatter),
input2 = new JFormattedTextField(formatter);
public Main() {
listener = new DocumentListener() {
Document source = null;
protected void update(Document doc) {
if (source == null) {
System.out.println("Update");
source = doc;
if (source.equals(input.getDocument())) {
input2.setText(input.getText());
} else if (source.equals(input2.getDocument())) {
input.setText(input2.getText());
}
source = null;
}
}
@Override
public void insertUpdate(DocumentEvent e) {
update(e.getDocument());
}
@Override
public void removeUpdate(DocumentEvent e) {
update(e.getDocument());
}
@Override
public void changedUpdate(DocumentEvent e) {
update(e.getDocument());
}
};
input.getDocument().addDocumentListener(listener);
input2.getDocument().addDocumentListener(listener);
input.setColumns(4);
input2.setColumns(4);
input.setValue(0.0);
JPanel panel = new JPanel();
panel.add(input);
panel.add(input2);
JOptionPane.showMessageDialog(null, panel);
}
public static void main(String[] args) {
new Main();
}
}