MouseListener
Los eventos de mouse pueden ser generados por cualquier componente añadiendo el vigilante addMouseListener, en general estos eventos son :
- Click de ratón
- Entrada del cursor sobre un componente
- Salida del cursor del mouse sobre un componente
java.awt.event
Interface MouseListener
Métodos:
- void mousePressed(MouseEvent e)
- Se invoca cuando el botón del ratón fué pulsado.
- void mouseReleased(MouseEvent e)
- Se invoca cuando el botón del ratón fué soltado.
- void mouseClicked(MouseEvent e)
- Se invoca cuando el botón del ratón fué pulsado y soltado.
- void mouseEntered(MouseEvent e)
- Se invoca cuando el cursor del ratón entró a un componente.
- void mouseExited(MouseEvent e)
- Se invoca cuando el cursor del ratón salió de un componente.
Class MouseEvent
java.lang.Object
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ComponentEvent
java.awt.event.InputEvent
java.awt.event.MouseEvent
Métodos:
entre otros:- public int getClickCount()
- Devuelve el número de clicks asociado al evento.
- public Point getPoint()
- Devuelve un objeto Point(con coordenas x e y) respecto al componente que generó el evento.
- public int getX()
- Devuelve un entero que será la posición horizontal "x" con respecto al componente que generó el evento.
- public int getY()
- Devuelve un entero que será la posición vertical "y" con respecto al componente que generó el evento.
- public int getXOnScreen()
- Devuelve un entero que será la posición horizontal "x" con respecto a la pantalla.
- public int getYOnScreen()
- Devuelve un entero que será la posición vertical "y" con respecto a la pantalla.
- public Point getLocationOnScreen()
- Devuelve un objeto Point(con coordenas x e y) con respecto a la pantalla.
MouseMotionListener
Estos eventos de movimiento de mouse tienen lugar cuando el cursor del ratón se mueve sobre un componente. Al igual que antes cualquier componente puede generarlos añadiendo el vigilante addMouseMotionListener().
java.awt.event
Interface MouseMotionListener
Métodos:
- void mouseDragged(MouseEvent e)
- Se invoca cuando el botón del ratón fué pulsado sobre un componente y luego se arrastró.
- void mouseMoved(MouseEvent e)
- Se invoca cuando el cursor del ratón se ha movido en un componente, pero sin botones han sido pulsados.
Lo objetos Eventos de esta interface sigue siendo "MouseEvent" con sus métodos: getClickCount(), getPoint(), getX(), getY(), etc
AtrapaMouse
El siguiente ejemplo del uso de mouseListener y MouseMotionListener lo tomo de los videos tutoriales de Jesús Conde. Se trata de un pequeño juego de intentar pulsar sobre un botón que se escapa a nuestro cursor del ratón.
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- AtrapaPanel atrapa = new AtrapaPanel();
- public AtrapaMouse(){
- super("Pulsa en aceptar para cerra la ventana");
- setSize(400,200);
- setLocationRelativeTo(null);
- atrapa.aceptar.addActionListener(this);
- setVisible(true);
- }
- }
- new AtrapaMouse();
- }
- int botonX,botonY,ratonX,ratonY;
- int ancho,alto;
- AtrapaPanel(){
- super();
- setLayout(null);
- addMouseMotionListener(this);
- botonX = 110; botonY = 110;
- add(aceptar);
- }
- @Override
- ratonX = event.getX();
- ratonY = event.getY();
- ancho = (int)getSize().getWidth();
- alto = (int)getSize().getHeight();
- botonX = moverBoton(ratonX,botonX,ancho);
- repaint();
- }
- botonY = moverBoton(ratonY,botonY,alto);
- repaint();
- }
- }
- //ignored this event
- }
- private int moverBoton(int ratonAt, int botonAt,int borde){
- if(botonAt < ratonAt){
- botonAt--;
- } else {
- botonAt++;
- }
- if (botonAt > (borde - 20)){
- botonAt = 20;
- }
- if(botonAt < 0){
- botonAt = borde - 80;
- }
- return botonAt;
- }
- super.paintComponent(comp);
- aceptar.setBounds(botonX,botonY,90,20);
- }
- }
- }
No hay comentarios:
Publicar un comentario