A cualquier componente le podemos asociar acciones de ratón y respuesta para ellas.
Estas acciones no son de uso común ya que se sólo nos suele interesar registrar que se ha hecho clic sobre un componente y eso ya lo podemos averiguar añadiendo un ActionListener al componente que implementa únicamente el método actionPerformed.
De todas maneras, en ocasiones, necesitamos saber si el ratón ha pasado por encima de un componente o si el ratón se está moviendo dentro de él.
Recordar que, al añadir un listener de ratón, al ser una interface nos obliga a implementar todos los métodos asociados al listener escogido.
import javax.swing.*; import java.awt.event.*; public class RatonListener{ public RatonListener(){ JButton myButton = new JButton("Button"); myButton.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent me) { me.getX(); me.getY(); } public void mousePressed(MouseEvent me) {} public void mouseReleased(MouseEvent me) {} public void mouseEntered(MouseEvent me) {} public void mouseExited(MouseEvent me) {} }); myButton.addMouseMotionListener(new MouseMotionListener(){ public void mouseDragged(MouseEvent mme) {} public void mouseMoved(MouseEvent mme) {} }); } }
Métodos del evento:
getX()
y getY()
nos devuelven las coordenadas dentro del componente en el que se ha producido el evento.
isPopupTrigger()
nos dice si se ha hecho clic con el botón derecho.
getModifiers()
nos devuelve la máscara de bits del evento con la que podemos saber qué boton se ha pulsado y si ha sido combinado con las teclas Alt, AltGr o Shift.