Вы находитесь на странице: 1из 7

Usando Lenguajes de Programacin en la

Programacin Orientada a Objetos Manipulando Eventos en Java Profesor


ENRIQUE TORRESCANO MONTIEL

Programacin Java con Eventos Recordemos algo...


Cuando encendemos una computadora, tras el arranque de su sistema operativo, y tras haber iniciado sesin el usuario del sistema, es necesario que se interactu con el mismo a travs de lo que conocemos como pantallas o bien con las interface grficas del usuario (independientemente de que un usuario use una computadora, su sesin ser la que identifique su interfaz) para poder hacer uso de las aplicaciones en la computadora y en los programas. Bien, hablamos de las interfaces de usuario y con ello tenemos que algunas ya estn preestablecidas por el mismo sistema, hablo del sistema operativo, de las aplicaciones informticas de Office, de un antivirus (si es que se usa el de prueba o el que se adquiri como licencia o se compr), de lo que es el ratn y el teclado junto con sus controladores, de un monitor que tambin debi instalarse en el sistema. Otros programas fueron seleccionados por el usuario y en esto podemos mencionar (para ejemplificar) a un convertidor de audio, de video, un reproductor, un navegador, en fin, tantas cosas que le podemos instalar a la computadora. Lo anterior no es otra cosa que los elementos (algunos tan slo) que integran la interfaz del usuario, es decir, lo que el usuario ver, usar, modificar, obtendr del sistema informtico. Dentro de la interfaz de usuario, lo que el mismo hace es mandar instrucciones al sistema para que se haga lo que se desea, lo que se quiere, lo que se necesita y esto se hace a travs de ordenes por medio del clic de un ratn, de oprimir una tecla en el teclado y debemos definir que para que un programa responda a la interaccin con el usuario, fue antes necesario hacer la programacin para tales efectos, y habindose dado esta programacin, es que puedes leer ste documento dndole ordenes a la computadora para que la rueda del ratn se desplace por el producto de Word. Esto que uno hace cotidianamente es llamado evento y son los sucesos que se obtienen tras la injerencia de un clic, de una presin de una tecla, es decir, de la interaccin con el sistema. Cuando se hace lo anterior, se est haciendo uso de los eventos y de los componentes grficos para que todo sea ms fcil, intuitivo, eficaz para el usuario y para esto cuando se programa con eventos en la programacin, se usan los botones, las etiquetas, las cajas de texto y queda como ejemplo ese botoncito en Word que se llama insertar, vista y cuando les usas, lo que ests haciendo es provocar un evento para que sea el detonador que despliegue la accin que el programa va a realizar y seguramente podrs hacer ms oscuras tus letras, ver un mapa del documento que estas editando, ingresar una imagen a tu .doc, en fin lo que quieras hacer, para eso se program as ese pequeo o gran programa que usas.

Bien como todo lo que se hace en programacin tiene una estructura, usemos el concepto de ingeniera para verle de esta forma, vayamos al asunto... Si deseamos programar con eventos, necesitamos de un componente (*) sobre el cual se detectar el evento requerido. Un escuchador del evento que debe estar asociado al elemento (*) mencionado con anterioridad y, ste (el escuchador) ser el que detecte el evento que ocurra. Un mtodo que ser el encargado de definir o re-definir, segn se necesite, las acciones a realizarse al presentarse el evento.

Elementos que componen el manejo de eventos y su estructura sintctica Los componentes grficos y el escuchador
Dentro de la programacin con eventos tenemos a los componentes grficos que son los medios por los cuales el usuario se comunicar con el programa para las acciones deseadas y los componentes grficos necesitan de un escuchador que est en espera de que el usuario provoque un evento, entonces cuando el usuario hace el llamado, el escuchador le detecta: "escucha" y si la accin que se realiz es la que corresponde al componente grfico, es pues que se desencadena la respuesta. Por ello cuando deseamos imprimir, si todo est en orden y la impresora conectada y encendida, es que se desencadena la impresin, de lo contrario el sistema dir que la impresora no est lista para imprimir. En el caso del ejemplo de la impresora la provocacin al evento se puede hacer por medio del ratn, tras una serie secuenciada del conocido clic o bien por medio de la combinacin de las teclas. Vemos que aqu ya tenemos a dos eventos conocidos como eventos de mouse y eventos del teclado.

Bien analicemos un programa y veamos su estructura sintctica, que no es otra cosa que el conjunto de reglas correctas de los elementos que constituyen un cdigo para un programa en programacin, en ste caso, Java... package PROGRAMACION; /**La clausula package debe ser la primera sentencia del archivo fuente. * Cualquier clase declarada en ese archivo pertenece al package indicado. * En el ejemplo, el archivo que contiene las sentencias: package PROGRAMACION; ... class EjemploSintactico { ... declara que la clase EjemploSintactico pertenece al package PROGRAMACION /* En el ejemplo mostrado la ventana permitira arrastrar una etiqueta por la * misma ventana. Se utiliza el evento del raton, tanto para la posicion * como para cuando se mueve de sitio el puntero*/ import java.awt.*; import java.awt.event.*; /* LOS PAQUETES java.awt, java.awt.event, ADEMAS DE javax.swing * contienen todas las herramientas necesarias para desarrollar interfaces grficas de usuario*/ public class EjemploSintactico { /*ASI FUE NOMBRADA LA CLASE; EjemploSintactico*/ public static void main( String args[] ) { /* Con lo anterior, se instancia un objeto de tipo Interfaz Hombre-Maquina*/ ETM etm = new ETM (); } } class ETM { /* Variables de referencia pasadas como parametros*/ Label Etiquetando; LabelInfo EtiquetaDeTorrescano; // Define la posicion inicial de la etiqueta int posicionX = 45; int posicionY = 35; /*EN ESTA POSICION CUANDO DAS RUN AL PROYECTO, VERAS LA ETIQUETA EN LA VENTANA ABIERTA EN FORMA CENTRADA EN LA PARTE SUPERIOR * / CUANDO MAXIMIZAS, PUEDES MOVERLA DE SU POSICION*/ public ETM () { // Crea un objeto visual Etiqueta (Label) Etiquetando = new Label( "MAXIMIZA, DA CLIC, SOSTEN EL CURSOR OPRIMIDO,"

+ "ARRASTRA Y SUELTA, ENTONCES VERAS DONDE QUEDA LA ETIQUETA" ); Etiquetando.setBackground( Color.ORANGE); /*(Color.ORANGE) nos indica en este caso que el color de la etiqueta * sera anaranjado, puede ser otro color, pero siempre en ingles, * ya que se reconoce solo el idioma ingles para el codigo del color*/ // Crea un objeto Panel para contener la etiqueta Panel miPanel = new Panel(); miPanel.setLayout( null ); miPanel.add( Etiquetando ); // Fijamos la posicion, el ancho y el alto de la etiqueta //Estos valores pueden cambiar y depende del gusto de cada quien para //asignar el tamao... Etiquetando.setBounds( posicionX,posicionY,800,50 ); /* Crea un objeto visual Frame para contenerlo todo*/ Frame miFrame = new Frame(); miFrame.setSize( 900,300 ); miFrame.setTitle( "COMPONENTES Y ESTRUCTURA EN JAVA; EVENTOS" + " MENSAJE " + "MENSAJE " ); miFrame.add( "Center",miPanel ); miFrame.setVisible( true ); // Crea un objeto para mantener informacion acerca de la etiqueta EtiquetaDeTorrescano = new LabelInfo(); EtiquetaDeTorrescano.labelX = posicionX; EtiquetaDeTorrescano.labelY = posicionY; /* Se instancia y registra un objeto MouseMotionListener * y otro MouseListener que procesaran los eventos de * movimiento del raton y de los botones del raton*/ Etiquetando.addMouseMotionListener( new ProcesoMovimientoRaton( EtiquetaDeTorrescano ) ); Etiquetando.addMouseListener( new EventoRaton( EtiquetaDeTorrescano,Etiquetando ) ); //de no existir lo anterior, la etiqueta quedara estatica en un solo sitio // Se instancia y registra un objeto receptor de eventos // para terminar la ejecucion del programa cuando el // usuario decida cerrar la ventana

Terminando procesoVentana = new Terminando(); miFrame.addWindowListener( procesoVentana ); //De no exitir lo anterior, no se podria cerrar el programa y tendras //si maximizaste, minimizar tu ventana para poder regresar al programa } } class LabelInfo { int labelX; int labelY; int ClicEnRatonX; int ClicEnRatonY; int MoviendoElRatonX; int MoviendoElRatonY; } class EventoRaton extends MouseAdapter { LabelInfo labelInfo; Label label; EventoRaton( LabelInfo iLabelInfo,Label iLabel ) { labelInfo = iLabelInfo; label = iLabel; } public void mousePressed( MouseEvent evt ) { // Guarda la posicion inicial en que se pulsa el raton labelInfo.ClicEnRatonX = evt.getX(); labelInfo.ClicEnRatonY = evt.getY(); } // Al soltar el boton se calcula la nueva posicion de la // etiqueta, en funcion de su posici0n inicial, el punto en // que se encontraba el raton al pulsar el boton y el punto

// final cuando se suelta el boton. Debemos pulsar y soltar dentro // de la etiqueta, sino no se realiza ningun movimiento //Despues de pulsar y soltar dentro de la etiqueta, notaras que la misma se //mueve hasta el lugar en que dejaste de oprimir el raton public void mouseReleased( MouseEvent evt ) { int nuevaPosicionX = labelInfo.labelX + labelInfo.MoviendoElRatonX - labelInfo.ClicEnRatonX; int nuevaPosicionY = labelInfo.labelY + labelInfo.MoviendoElRatonY - labelInfo.ClicEnRatonY; // Movemos la etiqueta a la nueva posicion label.setLocation( nuevaPosicionX,nuevaPosicionY ); // Guarda la posicion actual de la etiqueta labelInfo.labelX = nuevaPosicionX; labelInfo.labelY = nuevaPosicionY; } } class ProcesoMovimientoRaton extends MouseMotionAdapter { LabelInfo labelInfo; ProcesoMovimientoRaton( LabelInfo iLabelInfo ) { labelInfo = iLabelInfo; } public void mouseDragged( MouseEvent evt ) { // Guarda la posicion durante el movimiento del raton labelInfo.MoviendoElRatonX = evt.getX(); labelInfo.MoviendoElRatonY = evt.getY(); } } class Terminando extends WindowAdapter { public void windowClosing( WindowEvent evt ) { System.exit( 0 ); } } ATENTAMENTE Profr. Enrique Torrescano Montiel

Вам также может понравиться