A Keymap lets an application bind key strokes to actions. In
order to allow keymaps to be shared across multiple text
components, they can use actions that extend TextAction.
TextAction can determine which JTextComponent most recently has
or had focus and therefore is the subject of the action (In the
case that the ActionEvent sent to the action doesn't contain the
target text component as its source). The input method framework
lets text components interact with input methods, separate
software components that preprocess events to let users enter
thousands of different characters using keyboards with far fewer
keys. JTextComponent is an active client of the framework, so it
implements the preferred user interface for interacting with
input methods. As a consequence, some key events do not reach
the text component because they are handled by an input method,
and some text input reaches the text component as committed text
within an InputMethodEvent instead of as a key event. The
complete text input is the com