Páginas

miércoles, 23 de febrero de 2011

Dibujar Con El Mouse En Java

Esta pequeña aplicación muestra como se puede el efecto de dibujar libremente con el uso del puntero del Mouse (tipo Paint de Windows). El código es sencillo, esta implementada en una solo clase y se hace uso de eventos del Mouse como mouseDragged y mouseMoved de la interfaz MouseMotionListener, implementado en un JFrame y el dibujo en componente JComponent.


El funcionamiento de esta aplicación se basa en los eventos del mouse, cuando se presiona, cuando se arrastra presionando y cuando se deja de presionar, cuando se presiona se ejecuta el evento MousePressed guardamos los ejes (x, y) iniciales, cuando vamos arrastrando el mouse se ejecuta el evento mouseReleased en ahí vamos dibujando lineas pixel por pixel (todo el gráfico dibujado libremente es simplemente dibujar lineas pequeñas unas después de otras) y guardamos las lineas en lugar para que cada vez que se repinte la pantalla dibuje las lineas, en este caso utilizamos un ArrayList y finalmente el evento mouseReleased que ocurre cuando dejamos de hacer clic en el mouse adicionamos la ultima linea al ArrayList. Notar que cada vez estamos pintando las lineas con eso obtenemos que siempre estarán ahi, si hacemos cualquier cambio en la visualización de la pantalla.

public void mousePressed(MouseEvent e) {
    inicioArrastre = new Point(e.getX(), e.getY());
    repaint();
}

public void mouseDragged(MouseEvent e) {
    finArrastre = new Point(e.getX(), e.getY());
    Shape linea = crearLinea(inicioArrastre.x, inicioArrastre.y, finArrastre.x, finArrastre.y);
    lineas.add(linea);
    inicioArrastre = new Point(finArrastre.x, finArrastre.y);
    repaint();
}

public void mouseReleased(MouseEvent e) {
    finArrastre = new Point(e.getX(), e.getY());
    Shape linea = crearLinea(inicioArrastre.x, inicioArrastre.y, finArrastre.x, finArrastre.y);
    lineas.add(linea);
    repaint();
}

Si deseamos hacer un efecto de borrado a lo anterior lo único que deberíamos de hacer seria eliminar las lineas del ArrayList Este es un pequeño ejemplo para que luego hagamos cosas mas grandes.


Muy pronto basado en este ejemplo presentaremos JPaint, un Paint pero hecho en Java. Si desean ver otras aplicaciones que muestran como dibujar figuras geométricas arrastrando el mouse ingresa aquí.

10 comentarios:

  1. NO ME SALE CUANDO LO DESCARGUE EN PROYECTO SOLO ME SALE LA VENTANA, MAS NO BOTONES NI EL DIBUJO, TAL VEZ SERA POR LA VERSION, LA Q TENGO ES 6.5, TODAS MANERAS GRACIAS!

    ResponderEliminar
    Respuestas
    1. toca un punto con el mousse y arrastralo y ya se dibuja

      Eliminar
  2. alguien me pude decir como hacer el juego Jackpot en el JFrame+NetBeans por favor

    ResponderEliminar
  3. Gracias macho, funciona genial.

    ResponderEliminar
  4. muy bueno, gracias por compartir conocimientos

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. podrías poner de nuevo el código porfavor

    ResponderEliminar
  7. Por favor como puedo hacer para que cuando abra la aplicacion el mouse solo funcione dtro del cuadro es para conectarla a una tablet para capturar firma

    ResponderEliminar

Deja tu comentario, agradecimiento, sugerencia o critica.