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