Java tutorial
import java.awt.Color; import java.text.NumberFormat; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JPanel; public class Main { static String lastValidValue; public static void main(String... args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel contentPane = new JPanel(); JFormattedTextField ftf = new JFormattedTextField(NumberFormat.getNumberInstance()); ftf.setColumns(10); ftf.setFocusLostBehavior(JFormattedTextField.PERSIST); ftf.setValue(100); lastValidValue = "100"; ftf.addCaretListener(e -> { System.out.println("Last Valid Value : " + lastValidValue); if (ftf.isEditValid()) { String latestValue = ftf.getText(); System.out.println("Latest Value : " + latestValue); if (!(latestValue.equals(lastValidValue))) ftf.setBackground(Color.YELLOW.darker()); else { lastValidValue = ftf.getText(); ftf.setBackground(Color.WHITE); } } else { System.out.println("Invalid Edit Entered."); } }); contentPane.add(ftf); frame.setContentPane(contentPane); frame.pack(); frame.setVisible(true); } }