Foro de elhacker.net

Programación => Java => Mensaje iniciado por: 4nc3str4l en 29 Agosto 2012, 17:48 pm



Título: Pequeño regalito: Ventana que se escapa del mouse en java.
Publicado por: 4nc3str4l en 29 Agosto 2012, 17:48 pm
Aquí os dejo un pequeño obsequio para que lo analicéis y disfrutéis, como veréis es una chorrada pero bueno.
Solo se trata de una ventana que se abre que se escapa del Mouse cada vez que se acerca a ella :
El código es el siguiente:
Código:
import java.awt.event.*;
import java.awt.*;
public class Corre extends Frame
{
    private Button boton;
    
    public Corre()
    {
        super("Demo");
setLayout(new FlowLayout());
addMouseMotionListener(new EscuchaMouse());

boton =new Button("A que no me cojes?");

add(boton);

setSize(200,150);
setVisible(true);
    }
    class EscuchaMouse implements MouseMotionListener
    {
        public void mouseMoved(MouseEvent e)
{
   //Defino la distancia minima a la que se puede acercar el mouse
   int distancia =100;
   Point pMouse = e.getPoint();
   
   Dimension dimBoton = boton.getSize();
   Point pBoton = boton.getLocation();
   
   int difX1 = Math.abs(pBoton.x-pMouse.x);
   int difX2 = Math.abs((pBoton.x+dimBoton.width)-pMouse.x);
   
   int difY1 = Math.abs(pBoton.y-pMouse.y);
   int difY2 = Math.abs((pBoton.y+dimBoton.height)-pMouse.y);
   
   if(difX1<distancia || difX2 <distancia || difY1<distancia || difY2 <distancia){
       //Medidas
Dimension dimVentana = getSize();

//Medidas de la pantalla
Dimension dimScreen = getToolkit().getScreenSize();

//Elijo nuevas coordenadas para la ventana usando Math.random
int y = (int)(Math.random()*(dimScreen.height-dimVentana.height));
int x = (int)(Math.random()*(dimScreen.width-dimVentana.width));

   //reubico la ventana
   setLocation(x,y);
   }
 
}
        public void mouseDragged(MouseEvent e) {}
       }
       public static void main(String[]args)
           {
      new Corre();
  }
}
         
Ala, espero que os guste!
Saludos a todos!