Revista Informática

Ejemplo eventos del mouse en Java

Publicado el 02 marzo 2014 por Cristian David Henao Hoyos @chenaooo
Ejemplo eventos del mouse en JavaEn nuestra secuencia Java Swing no podemos dejar pasar un tema muy importante cuando trabajamos con interfaces graficas......los eventos son fundamentales para este tipo de aplicaciones, por esa razón en está entrada veremos como funcionan los eventos del Mouse con un ejemplo básico pero útil para futuros desarrollos....
Que son?
Los eventos son básicamente las acciones que suceden al ejecutar o realizar alguna invocación..........a?........ un evento es una acción que podemos controlar cuando por ejemplo se ejecuta algún proceso, si ingresamos a cierto componente, presionamos un botón, movemos el mouse etc internamente el sistema identifica que es lo que se está haciendo, si hacemos clic, presionamos una tecla, movemos el mouse, todas esas son acciones que pueden ser identificadas y controladas.......

En Java estos eventos son conocidos como Listeners o escuchadores, cuando trabajamos con esto a la vez estamos aplicando conceptos de POO como es el trabajo con interfaces (en este enlace trabajamos con interfaces), ya que para poder hacer uso de cualquier tipo de evento debemos implementar la interface adecuada que nos permite realizar el proceso....en este ejemplo al trabajar con eventos del mouse implementaremos la interface MouseListener, que nos provee una serie de métodos importantes para controlar las acciones del ratón...

El Ejemplo.
Ejemplo eventos del mouse en Java
Nuevamente como es costumbre, el ejemplo es muy simple, validaremos el funcionamiento mas común sobre los eventos del mouse.........tan solo vamos a presentar una ventana con un titulo y Botón central, el cual nos permitirá evaluar cuales son las acciones ejecutadas sobre el.....adicionalmente se le vincularán eventos al titulo para probar que estos no solo son aplicados a los botones sino a cualquier componente, ya que los eventos a utilizar dependen exclusivamente del mouse..........
La Aplicación.
Ejemplo eventos del mouse en JavaEl sistema consta de 2 clases, una clase principal que se llamará  Aplicacion.java que será la encargada de inicial el programa, también tenemos la clase Ventana.java que tendrá toda la parte gráfica de la ventana principal.
Aplicacion.java

Esta clase como se mencionó tan solo tendrá la instancia de la clase ventana y permitirá el llamado de la misma, como es común en los ejemplos presentados, se realiza así por organización....

public class Aplicacion {
public static void main(String args[]) {
Ventana ventana;
ventana = new Ventana();
ventana.setVisible(true);
}
}

Ventana.Java

Esta clase representa la ventana principal del sistema, como vemos implementa la interface MouseListener que permite el uso de los métodos mouseClicked(), mousePressed(), mouseReleased(), mouseExited(), mouseEntered(), los cuales capturan los eventos para cuando se hace clic, se presiona, se suelta, se sale, o se entra en algún componente respectivamente.....

class Ventana extends JFrame implements MouseListener {
JLabel etiqueta1, etiqueta2;
JLabel labelTitulo;
JButton boton1;
public Ventana() {
setLayout(null);
/**Propiedades del Label, lo instanciamos, posicionamos y
* activamos los eventos*/
labelTitulo= new JLabel();
labelTitulo.setText("Eventos del Mouse");
labelTitulo.setFont(new java.awt.Font("Comic Sans MS", 0, 28));
labelTitulo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
labelTitulo.setBorder(javax.swing.BorderFactory.createBevelBorder
(javax.swing.border.BevelBorder.LOWERED));
labelTitulo.setBounds(40, 10, 300, 40);
labelTitulo.addMouseListener(this);

etiqueta1 = new JLabel();
etiqueta1.setBounds(10, 160, 190, 20);
etiqueta2 = new JLabel();
etiqueta2.setBounds(10, 180, 190, 20);

boton1 = new JButton();
boton1.setBounds(110, 75, 150, 75);
boton1.setText("Presioname");
boton1.addMouseListener(this);

add(labelTitulo);
add(etiqueta1);
add(etiqueta2);
add(boton1);

setTitle("CoDejaVu Eventos del Mouse");
setSize(400, 240);
}
public void mouseClicked(MouseEvent evento) {
if (evento.getSource() == boton1){
etiqueta1.setText("Hizo clic en mi botón");
}
if (evento.getSource() == labelTitulo){
etiqueta1.setText("Hizo clic en el Titulo");
}
}
public void mousePressed(MouseEvent evento) {
etiqueta1.setText("");
if (evento.getSource() == boton1){
etiqueta2.setText("Presiono el botón");
}
if (evento.getSource() == labelTitulo){
etiqueta2.setText("Presiono el Titulo");
}
}
public void mouseReleased(MouseEvent evento) {
if (evento.getSource() == boton1){
etiqueta2.setText("Libero el botón");
}
if (evento.getSource() == labelTitulo){
etiqueta2.setText("Libero el Titulo");
}
}
public void mouseExited(MouseEvent evento) {
if (evento.getSource() == boton1){
etiqueta1.setText("Salio del botón");
}
if (evento.getSource() == labelTitulo){
etiqueta1.setText("Salio del Titulo");
}
etiqueta2.setText("");
}
public void mouseEntered(MouseEvent evento) {
if (evento.getSource() == boton1){
etiqueta1.setText("Entro a mi botón");
}
if (evento.getSource() == labelTitulo){
etiqueta1.setText("Entro al Titulo");
}
etiqueta2.setText("");
}
}

Como vemos cada uno de los métodos de la interface MouseListener permite identificar cual es el componente al que se le asigna el evento y basado en eso interpreta cual es el mensaje que se debe mostrar en pantalla.


Es importante tener muy presente que se debe indicar que componentes van a hacer uso de los eventos del mouse, esto mediante el uso de addMouseListener(this), por ejemplo para el botón se pone:
labelTitulo.addMouseListener(this);

diciendo así que el botón va a escuchar los eventos del ratón, si esta linea se omite, el boton no podria interpretar los eventos......... y listo!!!

un ejemplo simple, rápido y fácil de entender.....mas adelante veremos otros eventos comunes pero con el uso del teclado, espero que les pueda servir ;)


También te podría Interesar.
  • Como cargar varios paneles en Java
  • Como Importar Proyectos Eclipse en Netbeans
  • Redimensionar imagen en Java
  • Componentes de Texto.
  • Componentes Atomicos Java Swing
  • Herencia en Java.
  • ¿ String Vrs StringBuffer Vrs StringBuilder ?
  • Comparando Fechas En Java
  • Tutorial Aplicaciones Web con Jboss Seam

¿Hay algo que quieras anexar o comentar sobre esta entrada?  no dudes en hacerlo.....y si te gustó...... te invito a compartir
 y Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)

Volver a la Portada de Logo Paperblog