SlideShare una empresa de Scribd logo
Usando Lenguajes de Programación en la


  Programación Orientada a
          Objetos


Manipulando Eventos en Java
             Profesor
    ENRIQUE TORRESCANO MONTIEL
Programación Java con Eventos

                                              Recordemos algo...
Cuando encendemos una computadora, tras el arranque de su sistema operativo, y tras haber iniciado sesión
el usuario del sistema, es necesario que se interactué con el mismo a través de lo que conocemos como
pantallas o bien con las interface gráficas del usuario (independientemente de que un usuario use una
computadora, su sesión 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 están preestablecidas por el
mismo sistema, hablo del sistema operativo, de las aplicaciones informáticas 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 ratón y el teclado junto
con sus controladores, de un monitor que también 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 sólo) que integran la interfaz del usuario, es decir, lo
que el usuario verá, usará, modificará, obtendrá del sistema informático.

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 través de ordenes por medio del clic de un
ratón, de oprimir una tecla en el teclado y debemos definir que para que un programa responda a la
interacción con el usuario, fue antes necesario hacer la programación para tales efectos, y habiéndose dado
esta programación, es que puedes leer éste documento dándole ordenes a la computadora para que la rueda
del ratón 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 presión de una tecla, es decir, de la interacción con el sistema.

Cuando se hace lo anterior, se está haciendo uso de los eventos y de los componentes gráficos para que todo
sea más fácil, intuitivo, eficaz para el usuario y para esto cuando se programa con eventos en la programación,
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 estás haciendo es provocar un evento para que sea el detonador
que despliegue la acción que el programa va a realizar y seguramente podrás hacer más 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 pequeño o gran programa que usas.
Bien como todo lo que se hace en programación tiene una estructura, usemos el concepto de ingeniería 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 método que será el encargado de definir o re-definir, según se necesite, las acciones a
     realizarse al presentarse el evento.


      Elementos que componen el manejo de eventos y su estructura sintáctica

                          Los componentes gráficos y el escuchador
Dentro de la programación con eventos tenemos a los componentes gráficos que son los medios por los cuales
el usuario se comunicará con el programa para las acciones deseadas y los componentes gráficos 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 acción que se realizó es la que corresponde al
componente gráfico, 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 impresión, de lo contrario el
sistema dirá que la impresora no está lista para imprimir.

 En el caso del ejemplo de la impresora la provocación al evento se puede hacer por medio del ratón, tras una
serie secuenciada del conocido clic o bien por medio de la combinación 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 sintáctica, que no es otra cosa que el conjunto de reglas
correctas de los elementos que constituyen un código para un programa en programación, 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 gráficas 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 tamaño...
    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 quedaría 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 tendrías

        //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

Más contenido relacionado

La actualidad más candente

Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3Harolsmr1103
 
Natalia gonzález villamil (1)
Natalia gonzález villamil (1)Natalia gonzález villamil (1)
Natalia gonzález villamil (1)nata2381075
 
Eventos
EventosEventos
Eventos
negrogatica
 
Programación i
Programación iProgramación i
Prog gui
Prog guiProg gui
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3Harolsmr1103
 
Control de eventos en gui
Control de eventos en guiControl de eventos en gui
Control de eventos en gui
jc_lovecraft77
 
Introducción a action script 3
Introducción a action script 3Introducción a action script 3
Introducción a action script 3Lina2397
 
Swing, awt y JOptionPane de java
Swing, awt y JOptionPane de java Swing, awt y JOptionPane de java
Swing, awt y JOptionPane de java
Benjamín Joaquín Martínez
 
Eventos en Java
Eventos en JavaEventos en Java
Eventos en Java
Ronny Parra
 
Programación con Pygame (II)
Programación con Pygame (II)Programación con Pygame (II)
Programación con Pygame (II)
Fernando Salamero
 

La actualidad más candente (19)

6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Natalia gonzález villamil (1)
Natalia gonzález villamil (1)Natalia gonzález villamil (1)
Natalia gonzález villamil (1)
 
Eventos
EventosEventos
Eventos
 
99
9999
99
 
Programación i
Programación iProgramación i
Programación i
 
Prog gui
Prog guiProg gui
Prog gui
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Control de eventos en gui
Control de eventos en guiControl de eventos en gui
Control de eventos en gui
 
Intro Pygame Capitulo 2
Intro Pygame Capitulo 2Intro Pygame Capitulo 2
Intro Pygame Capitulo 2
 
Introducción a action script 3
Introducción a action script 3Introducción a action script 3
Introducción a action script 3
 
Swing, awt y JOptionPane de java
Swing, awt y JOptionPane de java Swing, awt y JOptionPane de java
Swing, awt y JOptionPane de java
 
Angie tovar (1)
Angie tovar (1)Angie tovar (1)
Angie tovar (1)
 
2trabajo
2trabajo2trabajo
2trabajo
 
Programacion en JAVA 2
Programacion en JAVA 2Programacion en JAVA 2
Programacion en JAVA 2
 
Eventos en Java
Eventos en JavaEventos en Java
Eventos en Java
 
Programación con Pygame (II)
Programación con Pygame (II)Programación con Pygame (II)
Programación con Pygame (II)
 
Sesion12-Componentes AWT
Sesion12-Componentes AWTSesion12-Componentes AWT
Sesion12-Componentes AWT
 
Action script
Action scriptAction script
Action script
 

Similar a Programando bajo el paradigma orientado a objetos, parte uno

Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
jbersosa
 
Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.
Aristides Miguel Mateo
 
Programando bajo paradigma poo, segunda parte
Programando bajo paradigma poo, segunda parteProgramando bajo paradigma poo, segunda parte
Programando bajo paradigma poo, segunda parteIng-D-SW-TorresKhano--ME
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3Harolsmr1103
 
Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a EventosLaura
 
Action scrip
Action scrip Action scrip
Action scrip tatago96
 
Loreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basicLoreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basic
loreidysgonzales
 
ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2caresucio
 
Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)lzhat
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
Ricardo Garcia
 
Action script 3 yahir ayala
Action script 3  yahir ayalaAction script 3  yahir ayala
Action script 3 yahir ayalaYahir17
 
Action script 3
Action script 3Action script 3
Action script 3
YahirAyala
 

Similar a Programando bajo el paradigma orientado a objetos, parte uno (20)

Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
 
Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.
 
Programando bajo paradigma poo, segunda parte
Programando bajo paradigma poo, segunda parteProgramando bajo paradigma poo, segunda parte
Programando bajo paradigma poo, segunda parte
 
Marcela montoya
Marcela montoyaMarcela montoya
Marcela montoya
 
Marcela montoya
Marcela montoyaMarcela montoya
Marcela montoya
 
Maira
MairaMaira
Maira
 
Francy velandia
Francy velandiaFrancy velandia
Francy velandia
 
Clases de Programación Android
Clases de Programación AndroidClases de Programación Android
Clases de Programación Android
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a Eventos
 
Action scrip
Action scrip Action scrip
Action scrip
 
Loreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basicLoreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basic
 
ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2
 
Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)
 
Action Script
Action ScriptAction Script
Action Script
 
Act
ActAct
Act
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
Actionscript
ActionscriptActionscript
Actionscript
 
Action script 3 yahir ayala
Action script 3  yahir ayalaAction script 3  yahir ayala
Action script 3 yahir ayala
 
Action script 3
Action script 3Action script 3
Action script 3
 

Más de Ing-D-SW-TorresKhano--ME

El mensaje de un corazón a otro corazón
El mensaje de un corazón a otro corazónEl mensaje de un corazón a otro corazón
El mensaje de un corazón a otro corazón
Ing-D-SW-TorresKhano--ME
 
TUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFT
TUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFTTUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFT
TUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFT
Ing-D-SW-TorresKhano--ME
 
Tutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano Montiel
Tutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano MontielTutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano Montiel
Tutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano Montiel
Ing-D-SW-TorresKhano--ME
 
Condiciones de uso y política de privacidad sitio web
Condiciones de uso y política de privacidad sitio webCondiciones de uso y política de privacidad sitio web
Condiciones de uso y política de privacidad sitio web
Ing-D-SW-TorresKhano--ME
 
Metodos y modelos de desarrollo de software
Metodos y modelos de desarrollo de softwareMetodos y modelos de desarrollo de software
Metodos y modelos de desarrollo de software
Ing-D-SW-TorresKhano--ME
 
Tecnologia informacion e inovacion
Tecnologia informacion e inovacionTecnologia informacion e inovacion
Tecnologia informacion e inovacion
Ing-D-SW-TorresKhano--ME
 
Tecnologia informacion e inovación
Tecnologia informacion e inovaciónTecnologia informacion e inovación
Tecnologia informacion e inovación
Ing-D-SW-TorresKhano--ME
 
Funciones numéricas, de fecha y hora en MySQL
Funciones numéricas,  de fecha y hora en MySQLFunciones numéricas,  de fecha y hora en MySQL
Funciones numéricas, de fecha y hora en MySQL
Ing-D-SW-TorresKhano--ME
 
Areas Funcionales de una Empresa
Areas Funcionales de una EmpresaAreas Funcionales de una Empresa
Areas Funcionales de una Empresa
Ing-D-SW-TorresKhano--ME
 
Escuelas de administracion
Escuelas de administracionEscuelas de administracion
Escuelas de administracion
Ing-D-SW-TorresKhano--ME
 
Un lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz graficaUn lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz graficaIng-D-SW-TorresKhano--ME
 
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
Ing-D-SW-TorresKhano--ME
 
Ventajas del Por Qué usar MySQL como Sistema Gestor de Bases de Datos
Ventajas del Por Qué usar MySQL como Sistema Gestor de Bases de DatosVentajas del Por Qué usar MySQL como Sistema Gestor de Bases de Datos
Ventajas del Por Qué usar MySQL como Sistema Gestor de Bases de Datos
Ing-D-SW-TorresKhano--ME
 
QUÉ ES MySQL
QUÉ ES MySQLQUÉ ES MySQL
COMO INSTALAR MySQL EN LINUX
COMO INSTALAR  MySQL EN LINUXCOMO INSTALAR  MySQL EN LINUX
COMO INSTALAR MySQL EN LINUX
Ing-D-SW-TorresKhano--ME
 
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado javaEjemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
Ing-D-SW-TorresKhano--ME
 
Teorema de pitagoras
Teorema de pitagorasTeorema de pitagoras
Teorema de pitagoras
Ing-D-SW-TorresKhano--ME
 
Diagrama de Flujo de un Sistema Operativo
Diagrama de Flujo de un Sistema OperativoDiagrama de Flujo de un Sistema Operativo
Diagrama de Flujo de un Sistema Operativo
Ing-D-SW-TorresKhano--ME
 
Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...
Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...
Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...
Ing-D-SW-TorresKhano--ME
 

Más de Ing-D-SW-TorresKhano--ME (20)

El mensaje de un corazón a otro corazón
El mensaje de un corazón a otro corazónEl mensaje de un corazón a otro corazón
El mensaje de un corazón a otro corazón
 
TUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFT
TUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFTTUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFT
TUTORIAL EDMODO Y ENLACE A FORMULARIO DE MICROSOFT
 
Tutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano Montiel
Tutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano MontielTutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano Montiel
Tutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano Montiel
 
Condiciones de uso y política de privacidad sitio web
Condiciones de uso y política de privacidad sitio webCondiciones de uso y política de privacidad sitio web
Condiciones de uso y política de privacidad sitio web
 
Presentación de ETM
Presentación de ETMPresentación de ETM
Presentación de ETM
 
Metodos y modelos de desarrollo de software
Metodos y modelos de desarrollo de softwareMetodos y modelos de desarrollo de software
Metodos y modelos de desarrollo de software
 
Tecnologia informacion e inovacion
Tecnologia informacion e inovacionTecnologia informacion e inovacion
Tecnologia informacion e inovacion
 
Tecnologia informacion e inovación
Tecnologia informacion e inovaciónTecnologia informacion e inovación
Tecnologia informacion e inovación
 
Funciones numéricas, de fecha y hora en MySQL
Funciones numéricas,  de fecha y hora en MySQLFunciones numéricas,  de fecha y hora en MySQL
Funciones numéricas, de fecha y hora en MySQL
 
Areas Funcionales de una Empresa
Areas Funcionales de una EmpresaAreas Funcionales de una Empresa
Areas Funcionales de una Empresa
 
Escuelas de administracion
Escuelas de administracionEscuelas de administracion
Escuelas de administracion
 
Un lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz graficaUn lenguaje de programación y una interfaz grafica
Un lenguaje de programación y una interfaz grafica
 
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
 
Ventajas del Por Qué usar MySQL como Sistema Gestor de Bases de Datos
Ventajas del Por Qué usar MySQL como Sistema Gestor de Bases de DatosVentajas del Por Qué usar MySQL como Sistema Gestor de Bases de Datos
Ventajas del Por Qué usar MySQL como Sistema Gestor de Bases de Datos
 
QUÉ ES MySQL
QUÉ ES MySQLQUÉ ES MySQL
QUÉ ES MySQL
 
COMO INSTALAR MySQL EN LINUX
COMO INSTALAR  MySQL EN LINUXCOMO INSTALAR  MySQL EN LINUX
COMO INSTALAR MySQL EN LINUX
 
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado javaEjemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
 
Teorema de pitagoras
Teorema de pitagorasTeorema de pitagoras
Teorema de pitagoras
 
Diagrama de Flujo de un Sistema Operativo
Diagrama de Flujo de un Sistema OperativoDiagrama de Flujo de un Sistema Operativo
Diagrama de Flujo de un Sistema Operativo
 
Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...
Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...
Manual de Personalización y Configuración de un Sistema Operativo (W-XP) (Un ...
 

Último

evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
MaribelGaitanRamosRa
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
QuispeJimenezDyuy
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 

Último (20)

evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 

Programando bajo el paradigma orientado a objetos, parte uno

  • 1. Usando Lenguajes de Programación en la Programación Orientada a Objetos Manipulando Eventos en Java Profesor ENRIQUE TORRESCANO MONTIEL
  • 2. Programación Java con Eventos Recordemos algo... Cuando encendemos una computadora, tras el arranque de su sistema operativo, y tras haber iniciado sesión el usuario del sistema, es necesario que se interactué con el mismo a través de lo que conocemos como pantallas o bien con las interface gráficas del usuario (independientemente de que un usuario use una computadora, su sesión 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 están preestablecidas por el mismo sistema, hablo del sistema operativo, de las aplicaciones informáticas 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 ratón y el teclado junto con sus controladores, de un monitor que también 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 sólo) que integran la interfaz del usuario, es decir, lo que el usuario verá, usará, modificará, obtendrá del sistema informático. 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 través de ordenes por medio del clic de un ratón, de oprimir una tecla en el teclado y debemos definir que para que un programa responda a la interacción con el usuario, fue antes necesario hacer la programación para tales efectos, y habiéndose dado esta programación, es que puedes leer éste documento dándole ordenes a la computadora para que la rueda del ratón 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 presión de una tecla, es decir, de la interacción con el sistema. Cuando se hace lo anterior, se está haciendo uso de los eventos y de los componentes gráficos para que todo sea más fácil, intuitivo, eficaz para el usuario y para esto cuando se programa con eventos en la programación, 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 estás haciendo es provocar un evento para que sea el detonador que despliegue la acción que el programa va a realizar y seguramente podrás hacer más 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 pequeño o gran programa que usas.
  • 3. Bien como todo lo que se hace en programación tiene una estructura, usemos el concepto de ingeniería 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 método que será el encargado de definir o re-definir, según se necesite, las acciones a realizarse al presentarse el evento. Elementos que componen el manejo de eventos y su estructura sintáctica Los componentes gráficos y el escuchador Dentro de la programación con eventos tenemos a los componentes gráficos que son los medios por los cuales el usuario se comunicará con el programa para las acciones deseadas y los componentes gráficos 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 acción que se realizó es la que corresponde al componente gráfico, 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 impresión, de lo contrario el sistema dirá que la impresora no está lista para imprimir. En el caso del ejemplo de la impresora la provocación al evento se puede hacer por medio del ratón, tras una serie secuenciada del conocido clic o bien por medio de la combinación de las teclas. Vemos que aquí ya tenemos a dos eventos conocidos como eventos de mouse y eventos del teclado.
  • 4. Bien analicemos un programa y veamos su estructura sintáctica, que no es otra cosa que el conjunto de reglas correctas de los elementos que constituyen un código para un programa en programación, 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 gráficas 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,"
  • 5. + "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 tamaño... 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 quedaría 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
  • 6. Terminando procesoVentana = new Terminando(); miFrame.addWindowListener( procesoVentana ); //De no exitir lo anterior, no se podria cerrar el programa y tendrías //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
  • 7. // 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