You are on page 1of 9

PIZiadas grficas

(http://piziadas.com)
Mi mundo es la imagen.
Programacin grfica: Interaccin : Eventos
de ratn [JAVA]
(http://piziadas.com/wp-
content/uploads/2011/11/mouseEvent.png)Despus de crear el
entorno grfico bsico (http://piziadas.com/2011/10/programacion-
grafica-iniciar-la-construccion-de-la-libreria-grafica-java.html) y el
motor de animacin (http://piziadas.com/2011/11/programacion-
grafica-motor-grafico-de-animacion-java.html), introduciremos las
primeras nociones de interaccin por medio de la incorporacin del modelo de eventos del
ratn.
La tcnica consistir en generar un evento o suceso cada vez que se interactua con el ratn.
Este evento ser capturado por alguno de nuestros mdulos de programacin, lo procesar
y generar algn tipo de accin.
El primer paso ser entender cmo generamos estos eventos y, posteriormente,
incorporaremos acciones ms elaboradas. De momento es suficiente con determinar el
tipo de evento que se produce y la posicin en la pantalla donde lo hemos realizado.
La programaci n di ri gi da por eventos es un paradigma de programacin
(http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n) en el que tanto la
estructura como la ejecucin de los programas van determinados por los sucesos que
ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.
Para entender la programacin dirigida por eventos, podemos oponerla a lo que no es:
mientras en la programacin secuencial (o estructurada
(http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada)) es el
programador el que define cul va a ser el flujo del programa, en la programacin
dirigida por eventos ser el propio usuario o lo que sea que est accionando el
programa el que dirija el flujo del programa. Aunque en la programacin secuencial
puede haber intervencin de un agente externo al programa, estas intervenciones
ocurrirn cuando el programador lo haya determinado, y no en cualquier momento
como puede ser en el caso de la programacin dirigida por eventos.(W
(http://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventos))
Implementar el interface del escuchador de eventos
Vamos a implementar el sistema de eventos en una nica clase de la librera grfica para no
complicar inicialmente el modelo. Lo primero que haremos ser modificar la declaracin de
la clase responsable de mantener la base de datos y pintar los objetos grficos:
BlackBoard. Indicaremos con la etiqueta implements que esta clase es capaz de
escuchar al ratn.
publ i c cl ass Blackboard extends Canvas i mpl ements MouseListener{
El nuevo interface nos obliga a aadir una nueva llamada a las libreras de JAVA para
localizar los ficheros que implementan dicho interface. Lo haremos con la palabra
reservada import.
i mport java.awt.event.MouseListener;
Ser necesario implementar los mtodos que se definen en el interface, as como importar
la clase MouseEvent que se pasa como parmetro a estos mtodos. De momento
simplemente los declararemos sin incorporar ninguna funcionalidad.
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
Registro del evento
Registraremos un evento de ratn cada vez que se produzca. En el constructor de la clase o
en un mtodo de inicio se incorporar la llamada addMouseLi stener para indicar que
queremos aadir el escuchador.
El parmetro que se pasa ser el nombre de la clase que escucha al ratn. En nuestro caso
indicaremos que es la misma clase que est registrando este evento la que ser avisada
cuando se produzca. Esto lo realizamos con la etiqueta thi s.
public Blackboard(){
this.addMouseListener(this);
}
Gestin del evento
Definiremos un par de variables que almacenarn las coordenadas de la posicin de
pantalla en la que se ha pulsado el ratn
private int lastx=0;
private int lasty=0;
Implementaremos una de las funciones anteriores, por ejemplo la que se ejecuta cada vez
que se ha pulsado el botn del ratn mouseClicked. De momento simplemente
guardaremos las coordenadas en las que se ha pulsado, aunque podramos haber
complicado el programa con funcionalidad aadida.
Estas coordenadas se encuentran en el objeto o evento que se pasa a la funcin, el objeto
MouseEvent
public void mouseClicked(MouseEvent arg0) {
lastx=arg0.getX();
lasty=arg0.getX();
}
Modificaremos el mtodo encargado de dibujar en la pantalla grfica para que pinte algo en
la posicin en la que el ratn se ha pulsado. Es la implementacin ms simple que nos
permite verificar de forma grfica que hemos capturado y procesado el evento del ratn.
public void paintOffScreen(Graphics g){
Enumeration enum=bd.elements();
Object ob;
while(enum.hasMoreElements()){
ob=enum.nextElement();
if(ob instanceof SimpleDrawable){
((SimpleDrawable) ob).paint(g
);
}
}
paintMousePosition(g);
}
La funcin responsable de esto es paintMousePosition, cuya implementacin consiste en
escribir de forma grfica las coordenadas almacenadas de la posicin del ratn, por medio
de la funcin drawString.
(http://piziadas.com/2011/12/programacion-grafica-interaccion-eventos-de-raton-java.html?
share=custom-1356261208&nb=1)
Compartir
5 0 Me gusta Tweet 18
StumbleUpon
(http://piziadas.com/2011/12/programacion-grafica-interaccion-eventos-de-raton-java.html?
share=email&nb=1)
Fondos de escritorio: Navidad 2011 (III) : Copo de nieve [ Imagen 1280x1024 ]
(http://piziadas.com/2011/12/fondos-de-escritorio-navidad-2011-iii-copo-de-
nieve-imagen-1280x1024.html)
Caracteres autnomos: Boids (http://piziadas.com/2011/11/caracteres-
autonomos-boids.html)
private void paintMousePosition(Graphics g) {
g.drawString("("+lastx+","+lasty+")", lastx,
lasty);
}
(http://pizia
das.com/tec
nologia/java)
Curso JAVA
Posted in JAVA (http://piziadas.com/category/programacion-2/java-2), Programacin
(http://piziadas.com/category/programacion-2), Tutorial (http://piziadas.com/category/tutorial) on 1
diciembre 2011 and tagged eventos (http://piziadas.com/tag/eventos), interaccin
(http://piziadas.com/tag/interaccion), Java (http://piziadas.com/tag/java), programacin
(http://piziadas.com/tag/programacion), ratn (http://piziadas.com/tag/raton), Tutorial
(http://piziadas.com/tag/tutorial) by joju (http://piziadas.com/author/admin)
Comentarios desactivados
Share 1
Bitacoras
Correo electrnico
Ms
Autor
Jos Juan Aliaga Maraver (https://plus.google.com/110604919489028984950?
rel=author)
Search this site
Go
Translation
Espaol
by (http://transposh.org/es/)
Graph Menu
(http://piziadas.com/imagen-de-sintesis/blender)
(http://piziadas.com/imagen-de-sintesis/video-animacion)
(http://piziadas.com/projection-mapping)
(http://piziadas.com/dibujo/dibujo-tecnico/piezas)
(http://piziadas.com/dibujo/geometria-proyectiva)
(http://piziadas.com/dibujo/geometria-metrica)
(http://piziadas.com/proyectos-innovacion-educativa/aprendizaje-activo)
(http://piziadas.com/2010/02/aprendizaje-activo-puentes-con-palillos.html)
(http://piziadas.com/piziadas/piztontadas) (http://piziadas.com/imagen-
de-sintesis/wallpapers-navidad/wallpapers-navidad-2011)
(http://piziadas.com/piziadas/pintura)
(http://piziadas.com/2010/07/percepcion-leyes-de-la-gestalt.html)
(http://piziadas.com/neurociencia) (http://piziadas.com/2011/03/cortando-una-
cinta-de-moebius.html)
(http://piziadas.com/tecnologia/aeronautica)
(http://piziadas.com/astronautica)
(http://piziadas.com/top-posts)
RSS - Entradas (http://piziadas.com/feed)
RSS - Comentarios (http://piziadas.com/comments/feed)
Archivos
Elegir mes
Etiquetas
3D (http://piziadas.com/tag/3d) Alumnos (http://piziadas.com/tag/alumnos) Animacin
(http://piziadas.com/tag/animacion) Arte (http://piziadas.com/tag/arte)
Blender (http://piziadas.com/tag/blender) Blog
(http://piziadas.com/tag/blog) Ciencia (http://piziadas.com/tag/ciencia)
Cycles (http://piziadas.com/tag/cycles) Dibujo (http://piziadas.com/tag/dibujo) Dibujo Tcnico
(http://piziadas.com/tag/dibujo-tecnico) Diseo (http://piziadas.com/tag/diseno) Edicin
(http://piziadas.com/tag/edicion) Educacin
(http://piziadas.com/tag/educacion) escritorio (http://piziadas.com/tag/escritorio)
espumilln (http://piziadas.com/tag/espumillon) fondos (http://piziadas.com/tag/fondos) Fotografa
(http://piziadas.com/tag/fotografia) Geometra (http://piziadas.com/tag/geometria) Humor
(http://piziadas.com/tag/humor) Imagen (http://piziadas.com/tag/imagen)
imagen de sntesis (http://piziadas.com/tag/imagen-de-sintesis) Imagen sinttica
(http://piziadas.com/tag/imagen-sintetica) Imagen Sntesis
(http://piziadas.com/tag/imagen-sintesis) modelado (http://piziadas.com/tag/modelado) Morphing
(http://piziadas.com/tag/morphing) Navidad (http://piziadas.com/tag/navidad) nieve
(http://piziadas.com/tag/nieve) Normalizacin (http://piziadas.com/tag/normalizacion) Piezas
(http://piziadas.com/tag/piezas) Pintura (http://piziadas.com/tag/pintura) PIZ (http://piziadas.com/tag/piz)
PIZiadas (http://piziadas.com/tag/piziadas) Raytracing (http://piziadas.com/tag/raytracing) Reflejos
(http://piziadas.com/tag/reflejos) Rendering (http://piziadas.com/tag/rendering) Sociedad
(http://piziadas.com/tag/sociedad) Software (http://piziadas.com/tag/software) Tecnologa
(http://piziadas.com/tag/tecnologia) Trabajos (http://piziadas.com/tag/trabajos) Transparencia
(http://piziadas.com/tag/transparencia) vdeo (http://piziadas.com/tag/video) Vdeos
(http://piziadas.com/tag/videos) Wallpaper (http://piziadas.com/tag/wallpaper)
Wallpapers (http://piziadas.com/tag/wallpapers) rbol (http://piziadas.com/tag/arbol)
Meta
Acceder (http://piziadas.com/wp-login.php)
RSS (Really Simple Syndication) de las entradas (http://piziadas.com/feed)
RSS (Really Simple Syndication) de los comentarios
(http://piziadas.com/comments/feed)
WordPress.org (https://es.wordpress.org/)
Visitas Map
(http://www.revolvermaps.com/?target=enlarge&i=3cmkhnyuvc4)
Google
joju Aliaga
Seguir
Suscrbete al blog por correo electrnico
Abrimos una nueva funcionalidad para tu comodidad. Introduce tu correo electrnico
para suscribirte a este blog y recibir notificaciones de nuevas entradas.
Direccin de email
Suscribir
Derechos
(http://piziadas.com/wp-content/uploads/2011/01/somerights20.gif)
Salvo indicacin expresa, todos los contenidos de esta pgina estn sindicados bajo una
licencia Creative Commons. Puedes usarlos y modificarlos, siempre que no se haga con
fines comerciales y se cite al autor.
Wallpapers Geomtricos (http://piziadas.com/imagen-de-
sintesis/wallpapers/wallpapers-geometricos) Wallpapers HDTV
(http://piziadas.com/imagen-de-sintesis/wallpapers/wallpapers-hdtv) Wallpapers
Navidad (http://piziadas.com/imagen-de-sintesis/wallpapers/wallpapers-navidad)
Wallpaper realistas (http://piziadas.com/imagen-de-sintesis/wallpapers/wallpaper-
realistas) Wallpapers Sociedad (http://piziadas.com/imagen-de-
sintesis/wallpapers/sociedad) Imagen (http://piziadas.com/type/image) Galera
(http://piziadas.com/type/gallery)
2014 PIZiadas grficas . Museum Core by Museum Themes (http://museumthemes.com/)
is proudly powered by WordPress (http://wordpress.org).
Los enlaces que completan las ilustraciones son informaciones y opiniones de sus
autores, muchas veces diferentes e incluso manifiestamente opuestas, buscando un
contraste de visiones.
QR PIZiadas.com

You might also like