jueves, 21 de marzo de 2013

Notificaciones al estilo Avira Antivirus desarrollado en java



Eldíade ayer me pidieron un ejemplo de notificaciones y justopensépor que no hacerlo como muestra las notificaciones Avira las cuales son pantallas emergentes que suben desde la barra de herramienta. para esto tenemos queconstruirun JDialog que es ideal para este efecto ya que es un ventana modal al ser modal no me ancla el icono de la ventana en la barra de tareas.

Construcción
para este efecto primero debemos obtener los valores de laresoluciónde la pantalla es decir su ancho y alto esto lo hacemos con la claseGraphicsEnvironment esta clase me permite tener los recursos de pantallas locales o impresoras y junto almétodogetLocalGraphicsEnvironment()que me retorna los valoresgráficosde un equipo local.

private  Rectangle inicializarRectangulo() {
GraphicsEnvironment entorno = GraphicsEnvironment.getLocalGraphicsEnvironment();
escritorio = entorno.getMaximumWindowBounds();
return escritorio;
}


este método nos va a retornar los valores máximos de la pantalla,ahora necesitaremos crear dosmétodosmas paraobtenerel ancho y el alto de la pantalla

      
/**********ANCHO***********/
public int getAncho()
{
bordes=inicializarRectangulo();
return bordes.width;
}
/**********ALTO**************/
public int getAlto()
{
bordes=inicializarRectangulo();
return bordes.height;
}


ahora existen algunas formas de obtener la resolución de la pantalla como por ejemplo usando la clase Toolkit.getDefaultToolkit().getScreenSize().

Efecto de desplazamiento(Subir y Bajar)
para el efecto necesitaremosconstruiruna claseThread la cual merecibirádos valores la clase notificador que es elJDialog y un valorbooleano que sera que determina cuando subir y cuando bajar,esta clase notificador me enviara los valores ancho y alto de la pantalla y realizando unaoperaciónsimple(una resta) con las dimensiones(Tamaño) del JDialog elúnicovalor que me interesa es el alto(getHeight()) del JDialog el cual se restara con elmétodogetAlto() que contiene el valor del alto de la pantalla de esta forma podre incrementar y decrementar los valores haciendo que el JDialog suba y baje utilizando elmétodopara posicionar el JDialog que essetLocation(ancho, alto);

public void run(){
while(arrancar){
if(sube_baja==true)
{
cont++;
if(cont=flota.getHeight()){
valor_actual=flota.getAlto()-cont;
flota.setLocation(flota.getAncho()-flota.getWidth(),valor_actual);
flota.setVisible(true);
}
else
{
arrancar=false;
cont=0;
}
}
else
{
cont++;
valor_final=(flota.getHeight()+flota.getHeight()/2)+cont;
if(valor_final=flota.getAlto()){
flota.setLocation(flota.getAncho()-flota.getWidth(), valor_final);
flota.setVisible(true);
}
else
{
arrancar=false;
cont=0;
flota.dispose();
}

}

flota.repaint();
try {
Thread.sleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
/*fin while*/
}


En la proxima les enseñare el mismo efecto pero mas elaborado.
DESCARGAR

No hay comentarios:

Publicar un comentario