474
Capítulo 11 Componentes de la GUI: parte 1
11.5 Campos de texto y una introducción al manejo de eventos
con clases anidadas
Por lo general, un usuario interactúa con la GUI de una aplicación para indicar las tareas que ésta debe realizar. Por
ejemplo, cuando usted escribe un mensaje en una aplicación de correo electrónico, al hacer clic en el botón
Enviar
le indica a la aplicación que envíe el correo electrónico a las direcciones especifi cadas. Las GUIs son
controladas
por eventos
. Cuando el usuario interactúa con un componente de la GUI, la interacción (conocida como un
evento
) controla el programa para que realice una tarea. Algunos eventos (interacciones del usuario) comunes que
podrían hacer que una aplicación realizara una tarea incluyen el hacer clic en un botón, escribir en un campo de
texto, seleccionar un elemento de un menú, cerrar una ventana y mover el ratón. El código que realiza una tarea
en respuesta a un evento se llama
manejador de eventos
y al proceso en general de responder a los eventos se le
conoce como
manejo de eventos
.
En esta sección, presentaremos dos nuevos componentes de GUI que pueden generar eventos:
JTextField
y
JPasswordField
(paquete
javax.swing
).La clase
JTextField
extiende a la clase
JTextComponent
(paquete
javax.swing.text
), que proporciona muchas características comunes para los componentes de Swing basados
en texto. La clase
JPasswordField
extiende a
JTextField
y agrega varios métodos específi cos para el procesa-
miento de contraseñas. Cada uno de estos componentes es un área de una sola línea, en la cual el usuario puede
introducir texto mediante el teclado. Las aplicaciones también pueden mostrar texto en un objeto
JTextField
(vea la salida de la fi gura 11.10). Un objeto
JPasswordField
muestra que se están escribiendo caracteres a
medida que el usuario los introduce, pero oculta los caracteres reales con un
carácter de eco
, asumiendo que
representan una contraseña que sólo el usuario debe conocer.
Cuando el usuario escribe datos en un objeto
JTextField
o
JPasswordField
y después oprime
Intro,
ocurre un evento. Nuestro siguiente ejemplo demuestra cómo un programa puede realizar una tarea en respuesta
a ese evento. Las técnicas que se muestran aquí se pueden aplicar a todos los componentes de GUI que generen
eventos.
La aplicación de las fi guras 11.9 y 11.10 utiliza las clases
JTextField
y
JPasswordField
para crear y mani-
pular cuatro campos de texto. Cuando el usuario escribe en uno de los campos de texto y después oprime
Intro, la
aplicación muestra un cuadro de diálogo de mensaje que contiene el texto que escribió el usuario. Sólo podemos
escribir en el campo de texto que esté “
enfocado
”. Un componente recibe el enfoque cuando el usuario hace
clic en ese componente. Esto es importante, ya que el campo de texto con el enfoque es el que genera un evento
cuando el usuario oprime
Intro. En este ejemplo, cuando el usuario oprime Intro en el objeto
JPasswordField
,
se revela la contraseña. Empezaremos por hablar sobre la preparación de la GUI, y después sobre el código para
manejar eventos.
1
// Fig. 11.9: CampoTextoMarco.java
2
// Demostración de la clase JTextField.
3
import
java.awt.FlowLayout;
4
import
java.awt.event.ActionListener;
5
import
java.awt.event.ActionEvent;
6
import
javax.swing.JFrame;
7
import
javax.swing.JTextField;
8
import
javax.swing.JPasswordField;
9
import
javax.swing.JOptionPane;
10
11
public class
CampoTextoMarco
extends
JFrame
12
{
13
private
JTextField campoTexto1;
// campo de texto con tamaño fijo
14
private
JTextField campoTexto2;
// campo de texto construido con texto
15
private
JTextField campoTexto3;
// campo de texto con texto y tamaño
16
private
JPasswordField campoContrasenia;
// campo de contraseña con texto
17
18
// El constructor de CampoTextoMarco agrega objetos JTextField a JFrame
19
public
CampoTextoMarco()
Figura 11.9
| Objetos
JTextField
y
JPasswordField
. (Parte 1 de 3).
11_MAQ_CAP_11.indd474
4/19/081:25:58AM