Este documento explica los conceptos básicos de la programación orientada a eventos en Java. Describe los componentes necesarios para manejar eventos como componentes gráficos, escuchadores de eventos y métodos de respuesta a eventos. Luego presenta un ejemplo de código Java que permite arrastrar una etiqueta dentro de una ventana utilizando eventos del ratón. El código ilustra cómo se implementan estos componentes y cómo se estructura sintácticamente un programa de eventos en Java.
Mensaje de una mujer a un hombre
Palabras que del corazón salen y hacen que el otro ser humano sienta que está vivo y nunca ha dejado de ser una persona con sentimientos
ESTIMADO MAESTRO QUE PARTICIPAS EN EL PROYECTO DE TRABAJO COLABORATIVO PARA EL MANEJO DE LAS TIC´s EN LA EDUCACIÓN, HOY NECESITO QUE IDENTIFIQUES TRES OPCIONES MÁS DE TRABAJO QUE LOS MAESTRO PUEDEN EMPLEAR COMO MEDIOS DIDÁCTICOS AL MOMENTO DE USAR RECURSOS PARA LAS CLASES VIRTUALES.
EXPLORA EL DOCUMENTO, REALIZA LA ACTIVIDAD SEÑALADA Y RESPONDE UN FORMULARIO, EL CUAL AHORA SE REALIZÓ CON LA TECNOLOGÍA DE MICROSOFT
Tutorial Sobre 260MB (Alojamiento Web) del Ingeniero Enrique Torrescano MontielIng-D-SW-TorresKhano--ME
El siguiente tutorial desarrollado en Visio de Microsoft presenta la manera de obtener un alojamiento en la tecnología 260 MB
Así mismo, la forma de hacer las cargas respectivas a la plataforma
Documento que nos muestra cuáles son las áreas funcionales que se consideran dentro de una empresa.
Documento útil para las carreras de ingeniería y administración
Documento que describe brevemente el uso y la aplicación de las filosofías que han imperado en las escuelas que representan a la administración de empresas.
FE DE ERRATAS (PERDON POR EL ERROR INVOLUNTARIO, YA QUE ES BASE DE DATOS, EN LUGAR DE BASE DE BATOS) PROCESO QUE NOS MUESTRA EL CÓMO SE GESTIONA UNA BASE DE DATOS, EN ESTE CASO HABLAMOS DEL SISTEMA GESTOR DE BASES DE DATOS MySQL
FE DE ERRATAS (PERDON POR EL ERROR INVOLUNTARIO, YA QUE ES BASE DE DATOS, EN LUGAR DE BASE DE BATOS) En éste trabajo se explica qué es el concepto de SGBD (Sistema Gestor de Bases de Datos) MySQL
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
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