Przyznam, że JFormattedTextField nie jest najłatwiejszą klasą do użytku, i tak, ma ona pewne problemy, ale jak większość komponentów, w niektórych przypadkach wykonuje rozsądną pracę, a w innych - kiepską.
Pozwala to na edycję wartości całkowitych, ponieważ dane są wpisywane podczas używania MaskFormatter. Tak więc dla prostych zadań może być skuteczny.
Edycja danych to skomplikowane zadanie. Czasami trzeba edytować dane w miarę ich wprowadzania (w przypadku sprawdzania wartości liczb całkowitych). Czasami musisz edytować dane po ich wprowadzeniu (w przypadku sprawdzania poprawności daty). Następnie musisz zdecydować, jak postępować z nieprawidłowymi danymi.
Może istnieć pewna ilość konfiguracji parametrów podczas wykonywania nietrywialnych zadań. Nie zawsze działają tak, jak tego chcesz lub w sposób, w jaki ich oczekujesz, więc musisz eksperymentować, aby dowiedzieć się, kiedy możesz/powinieneś używać tego komponentu.
Głównym problemem z JFormattedTextField jest to, że jest zoptymalizowany pod kątem rzadkiego przypadku, zamiast wspólnego, podczas gdy brakuje komponentu dla typowego zadania. AWT jest wystarczająco zły, ale Swing, ponownie, został zaprojektowany przez ludzi, którzy nie mieli pojęcia o stanie techniki w programowaniu GUI i popełniali dwa razy te same błędy! Jeśli projektanci Javy i Swinga właśnie przyjrzeli się temu, co Delphi lub NeXt's Interface Builder byli w stanie zrobić od wczesnych lat 90-tych i jak to zrobili, zarówno język, jak i Swing byłyby dużo łatwiejsze w użyciu! –