Clases TextArea y TextField

Ambas componentes heredan de la clase TextComponent y muestran texto seleccionable y editable. La diferencia principal es que TextField sólo puede tener una línea, mientras que TextArea puede tener varias líneas. Además, TextArea ofrece posibilidades de edición de texto adicionales.

Se pueden especificar el font y los colores de foreground y background. Sólo la clase TextField genera ActionEvents, pero como las dos heredan de la clase TextComponent ambas pueden recibir TextEvents. La Tabla 5.23 muestra algunos métodos de las clases TextComponent, TextField y TextArea. No se pueden crear objetos de la clase TextComponent porque su constructor no es public; por eso su constructor no aparece en la Tabla 5.23.

La clase TextComponent recibe eventos TextEvent, y por lo tanto también los reciben sus clases derivadas TextField y TextAreas. Este evento se produce cada vez que se modifica el texto del componente. La caja TextField soporta también el evento ActionEvent, que se produce cada vez que el usuario termina de editar la única línea de texto pulsando Intro.

Como es natural, las cajas de texto pueden recibir también los eventos de sus super-clases, y más en concreto los eventos de Component: FocusEvent, MouseEvent y sobre todo KeyEvent. Estos eventos permiten capturar las teclas pulsadas por el usuario y tomar las medidas adecuadas. Por ejemplo, si el usuario debe teclear un número en un TextField, se puede crear una función que vaya capturando los caracteres tecleados y que rechace los que no sean numéricos.

Cuando se cambia desde programa el número de filas y de columnas de un TextField o TextArea, hay que llamar al método validate() de la clase Component, para que vuelva a aplicar el LayoutManager correspondiente. De todas formas, los tamaños fijados por el usuario tienen el carácter de “recomendaciones” o tamaños “preferidos”, que el LayoutManager puede cambiar si es necesario.

Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra