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 espublic; 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: FocusErent. 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.
No hay comentarios:
Publicar un comentario