Está en la página 1de 7

UNIVERSIDAD POLITCNICA DEL VALLE DE TOLUCA

NOMBRE DEL PROGRAMA EDUCATIVO:


INGENIERA EN INFORMTICA

NOMBRE DEL ASIGNATURA:

PROGRAMACION ORIENTADA A OBJETOS


PRCTICA PRESENCIAL
NOMBRE DE LA UNIDAD DE APRENDIZAJE:
UNIDAD 5
FACILITADOR:
ING: LETICIA JAEL ROJAS
INTEGRANTES:
No
1

Matrcula
1415INI0
22

Nombre
MARTINMARTINEZ DOMINGUEZ

Firma

COMPONENTES SWING

Todos los componentes Swing son objetos de clases derivadas de la clase


JCom ponent, que a su vez se deriva de la clase java.awt.Component, lo que
pone de manifiesto que Swing se deriva de AWT. Para combinar stos formando
una inter faz grfica, Swing provee, adems, los contenedores de nivel alto
JWindow, JFrame, JDialog y JApplet que puede observar en la jerarqua de clases
de Java mostrada a continuacin:
java.lang.Object

java.awt.Window

java.awt.Component

java.awt.Dialog

java.awt.Container

javax.swing.JDialog

javax.swing.JComponent

java.awt.Frame

java.awt.Panel

javax.swing.JFrame

java.applet.Applet
javax.swing.JApplet

javax.swing.JWindow

ARQUITECTURA MODELO-VISTA-CONTROLADOR
Swing basa sus componentes en la arquitectura modelo-vista-controlador (MVC).
El modelo se corresponde con el estado del componente (recuerde que el
estado de un objeto lo definen todos sus datos miembro); por ejemplo, en una
lista el modelo est definido por todos los elementos de la mismaen cambio, en
una caja de texto el modelo est defmido por el documento de texto. La vista se
refiere a cualquier perspectiva de ese modelo; por ejemplo, en una lista la vista es
la repre sentacin grfica de la misma, y en una caja de texto, dem. Y el
controlador (ma nejador de eventos) es el responsable de la actualizacin del
modelo.

MANEJADORES DE EVENTOS DE SWING


Este apartado nos vamos a limitar a exponer brevemente los manejadores de
eventos soportados por swing.
Java 2 proporciona varios manejadores de eventos, cada uno de los cuales
maneja un tipo particular de eventos.
Los manejadores de eventos que manipulan los tipos de eventos de la figura
anterior son objetos que sern implementados a partir de las interfaces que se ex
ponen a continuacin.

Todos los componentes


eventos:

swing

soportan

los siguientes

manejadores

de

ComponentListener. Permite manejar los eventos de tipo ComponentEvent


generados por los componentes cuando cambian su tamao, posicin o visibi
lidad.
FocusListener. Permite manejar los eventos de tipo FocusEvent generados por
los componentes cuando ganan o pierden el foco. Cuando un componente gana el
foco est en condiciones de recibir entradas desde el teclado.
KeyListener. Permite manejar los eventos de tipo KeyEvent generados por el
componente que tiene el foco, cuando recibe entradas desde el teclado.

MouseListener. Permite manejar los eventos de tipo MouseEvent generados por


los componentes cuando el cursor del ratn entra en su rea o sale de ella, y
cuando el usuario pulsa y suelta un botn del ratn.
MouseMotionListener. Permite manejar los eventos tipo MouseEvent gene rados
por un componente cuando el ratn se mueve sobre l (el adaptador
MouselnputAdapter implementa
tanto MouseListener como MouseMotion
Listener).

JERARQUA DE COMPONENTES DE UNA APLICACIN

Los objetos fundamentales que intervienen en una aplicacin en ejecucin son:


la ventana principal o contenedor del nivel superior (objeto JFrame), un
contenedor del nivel intermedio (objeto JPanel) y los componentes atmicos u
objetos no destinados a contener a otros componentes (por ejemplo, un objeto
JLabcl). Estos componentes estn dispuestos jerrquicamente segn se explica a
continuacin.

CAJAS DE TEXTO, ETIQUETAS Y BOTONES


Los componentes ms comunes en una aplicacin swing son las cajas de texto,
las etiquetas y los botones de pulsacin. Las cajas de texto, componentes
JTextField o JTextArea, son particularmente importantes porque permiten realizar
la entrada de datos para una aplicacin y visualizar los resultados producidos por
la misma. Las etiquetas, componentes JLabel, son cajas de texto no modificables
por el usuario. Su finalidad es informar al usuario de qu tiene que hacer y cul es
la funcin de cada componente. Por ltimo, un botn de pulsacin, componente de
la clase JButton, permite al usuario ejecutar una accin cuando sea preciso. Las
clases mencionadas, que proporcionan la funcionalidad para los componentes
descritos, se derivan, segn se expuso anteriormente, directa o indirectamente de
la clase JComponent, que aporta la funcionalidad comn a todos estos compo
nentes.

Como ejemplo, piense en una aplicacin que permita convertir grados cent grados
a Fahrenheit, y viceversa. Esta aplicacin requiere una interfaz con al me nos dos
cajas de texto, de manera que cuando el usuario introduzca en una caja una
temperatura en grados centgrados, en la otra se visualice la temperatura equi
valente en grados Fahrenheit, y cuando en esta otra caja se introduzca una
tempe ratura en grados Fahrenheit, en la primera se visualice la temperatura
correspon diente en grados centgrados.

TECLA DE ACCESO
Se puede observar en el ttulo del botn Aceptar que la letra A aparece subrayada.
Esto significa que el usuario podr tambin ejecutar la accin especificada por el
botn, pulsando las teclas Alt+A. Esta asociacin tecla-componente recibe el
nombre de nemnico y se realiza mediante la sentencia siguiente:
jbtAceptar.setMnemonic ('A'l; //el argumento puede ser 65 o 'A'
Botn por omisin
Si echa un vistazo a los botones de las ventanas de su sistema operativo,
observar que, generalmente, hay un botn con un borde ms resaltado que los
dems; se trata del botn por omisin: botn que ser automticamente pulsado
cuando se pulse la tecla Entrar. Para informar al panel raz del que ser el botn
por omisin de entre todos los que contenga, hay que invocar a su mtodo
setDefaultButton: getRootPane().setDefaultButton(jbtAceptar);

RESPONDER A LOS EVENTOS


Ya tenemos el formulario con sus componentes. El paso siguiente es hacer que
estos componentes respondan a las solicitudes que el usuario haga a la
aplicacin, lo que requiere unir a los mismos el cdigo que debe ejecutarse como
respuesta.
Para hacer que una aplicacin responda a eventos, uniremos a cada uno de los
componentes el cdigo con el que deben responder a cada evento de inters que
se produzca sobre ellos. Este cdigo asociado con cada componente y escrito
para un determinado evento o suceso recibe el nombre de mtodo conducido por
un evento. En nuestro ejemplo estos mtodos sern miembros de la clase Conver
derivada deJFrame.

ENFOCAR UN OBJETO
Cuando un componente posee el punto de insercin, se dice que dicho
componente est enfocado o que tiene el foco.
Un usuario de una aplicacin puede enfocar un determinado componente
haciendo clic sobre l, o bien pulsando la tecla Tab una o ms veces hasta situar
el foco sobre l. As mismo, un componente tambin puede ser enfocado desde la

propia aplicacin; por ejemplo, si usted quiere que el componente jtfGradosC


quede enfocado cuando la ventana se visualice, puede hacerlo de dos maneras:
l. Invocando al mtodo requestFocus para el componente que requiere el foco una
vez abierta la ventana. Este proceso puede realizarse como respuesta al mensaje
"ventana abierta" (window opened) que se genera una vez mostrada la ventana.

INTERCEPTAR LA TECLA PULSADA


La aplicacin Conver, expuesta anteriormente, requiere el botn por omisin
Aceptar para que cuando el usuario modifique el contenido de una caja de texto y
pulse la tecla Entrar, se realice la modificacin correspondiente en la otra caja.
Seguramente usted habr pensado en eliminar el botn Aceptar y en su lugar
interceptar la tecla Entrar, instante en el que hay que realizar la conversin. Una
forma de interceptar la tecla Entrar es asociando un manejador de tipo
ActionListener con el componente de texto que recibe tal evento, ya que al pulsar
la tecla Entrar sobre uno de estos componentes se produce un evento de accin.
Comparando este nuevo diseo con el anterior, ahora no necesitamos asociar con
las cajas de texto un manejador de eventos de tipo KeyListener, sino uno de tipo
ActionListener para interceptar la pulsacin de la tecla Entrar que el usuario
realizar despus de escribir la cantidad que desea convertir.

Para ello, aada el cdigo indicado a continuacin al mtodo initComponents, en


el que se puede observar que la respuesta a la pulsacin de la tecla Entrar vendr
dada por la ejecucin del mtodo jtfGradosActionPerformed.

VALIDAR UN CAMPO DE TEXTO


Validar un campo de texto equivale a restringir su contenido al conjunto de
caracteres vlidos para dicho campo. Si la validacin de los datos se hace
despus de pulsar la tecla Entrar en el componente de texto (se produce un
evento de accin: ActionEvent), el campo podra contener datos no vlidos, pero
podran ser validados antes de utilizarlo. En cambio, si la validacin se hace
verificando la validez de cada tecla pulsada (eventos de pulsacin: KeyEvent), el
campo de texto ya estar validado una vez finalizada la entrada.

CREAR UN CAMPO DE TEXTO VALIDADO

Est arquitectura, para crear un campo validado hay que interceptar cada
pulsacin antes de que el carcter sea insertado en el modelo, con el fin de
insertar slo los caracteres vlidos. De esta forma la vista nunca podr mostrar
datos no vlidos.
El modelo (contenedor de texto) de un componente de texto es un objeto que
implementa la interfaz Document. En el nivel ms elemental, el texto es modelado
como una secuencia lineal de caracteres. Este modelo es creado por el mtodo
createDefaultModel de JTextField cada vez que se crea un objeto de esta clase.
El mtodo createDefaultModel retoma de forma predeterminada un objeto
javax.swing.text.PlainDocument que se corresponde con el contenedor de texto;
esto es, con el modelo. Entonces, lo que podemos hacer es derivar una clase de
JTextField y sobrescribir el mtodo createDefaultModel para que devuelva un
modelo personalizado. Lgicamente el modelo personalizado ser un objeto de
una clase derivada de PlainDocument.

También podría gustarte