Chapter 20. Formatted Text Fields
Swing provides extended functionality for text fields
through the JFormattedTextField
class introduced in SDK 1.4. A JFormattedTextField can display its value in a
friendly (and locale-specific) way, enforce restrictions on its value, be
used to edit non-String objects, and
permit its value (or part of its value) to be incremented or decremented
with the keyboard.
Figure 20-1 shows
several JFormattedTextFields, but for
the full effect you may wish to run the SimpleFTF program and play with it a bit. Most
of the fields show locale-specific formatting. The Integer field puts delimiters between millions
and thousands and between thousands and units. It changes its appearance
(by dropping the delimiters) temporarily when it gains focus. An invalid
value either adjusts to the closest valid value or reverts to the most
recent valid value when a field loses focus, depending on the field. (For
example, try changing the date to February 34.) Also, be sure to notice
how elements of the Date field can be
incremented and decremented with the up arrow and down arrow keys. (The
L&F specifies keys for incrementing and decrementing,
but existing L&Fs use the up arrow and down arrow. In addition, the
Enter and Escape keys usually commit and cancel an edit,
respectively.)

Figure 20-1. JFormattedTextFields in two different locales
You might also notice some nonintuitive ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access