GUI-BOX | EL CÓDIGO ES

ASOMBROSO. PASIÓN. DIVERTIDO. ESTRESANTE. SATISFACCIÓN.

LOGO

Área de descarga

Librería NefAnimación: animación y efecto fade para Java 2018

** Arreglado animaciones para JDialog

Tal vez muchos de ustedes ya sabes hacer efectos como este, pero para los que están empezando o les da flojera hacerlo desde 0, pues les comparto mi librería para crear animaciones sencillas para los jFrame y los jDialog.

Consideraciones

  • Solo funciona en JFrame o JDialog SIN DECORACIÓN (la propiedad undecorated debe estar marcada en las opciones del contenedor).
  • Requiere una versión de jdk 1.7 o 1.8

Cómo utilizarla

  • Importar la librería en el proyecto: propiedades del proyecto -> añadir jar
  • En código agregar la respectiva linea de código para importarla:

import Animacion.*;

  • Efecto para subir un contenedor:

if((this.getY()-(this.getHeight()/2)) < 0){ //este if es para detectar si el frame ya llegó a lo más alto de la pantalla, justo para que no siga avanzando hacia arriba.
   Animacion.subir(this.getY(), 0, 2, 2, this);
   /*Los parámetros a utilizar son:
     Animacion.subir(
      coordenada Y inicial,
      coordenada Y final o destino,
      retardo en milisegundos para cada iteración,
      cantidad de pixeles a recorrer en cada iteración hasta llegar a la coordenada final,
      componente (frame, panel, jdialog)
      );
      A MAYOR CANTIDAD DE MILISEGUNDOS, MAS LENTO SE MOVERÁ EL FRAME.
      A MAYOR CANTIDAD DE PIXELES A RECORRER EN CADA ITERACIÓN, MÁS "BRUSCO" SALTARÁ EL FRAME DE UNA POSICIÓN A OTRA.
   */
}else{//si aún no llega al tope superior de la pantalla, sigue avanzando normalmente hacia arriba.
   Animacion.subir(this.getY(), (this.getY()-(this.getHeight()/2)), 2, 2, this);
 }

this.getY() : es la coordenada Y del frame o ventana.

this.getHeight()/2: es la altura de la ventana dividida entre 2, para que la coordenada en Y final, sea la mitad del tamaño del componente. OJO se puede cambiar por cualquier valor numérico.

  • Efecto para bajar un contenedor:

if((this.getY()+(this.getHeight())) < screenSize.height){
   Animacion.bajar(this.getY(), (this.getY()+(this.getHeight()/2)), 2, 2, this);
/*Los parámetros a utilizar son:
     Animacion.bajar(
      coordenada Y inicial,
      coordenada Y final o destino,
      retardo en milisegundos para cada iteración,
      cantidad de pixeles a recorrer en cada iteración hasta llegar a la coordenada final,
      componente (frame, panel, jdialog)
      );
      A MAYOR CANTIDAD DE MILISEGUNDOS, MAS LENTO SE MOVERÁ EL FRAME.
      A MAYOR CANTIDAD DE PIXELES A RECORRER EN CADA ITERACIÓN, MÁS "BRUSCO" SALTARÁ EL FRAME DE UNA POSICIÓN A OTRA.
   */
}

  • Efecto para mover a la izquierda:

 if((this.getX()-(this.getWidth()) / 2) > 0){
     Animacion.mover_izquierda(this.getX(), (this.getX()-(this.getWidth() /2 )), 2, 2, this);
/*Los parámetros a utilizar son:
     Animacion.mover_izquierda(
      coordenada X inicial,
      coordenada X final o destino,
      retardo en milisegundos para cada iteración,
      cantidad de pixeles a recorrer en cada iteración hasta llegar a la coordenada final,
      componente (frame, panel, jdialog)
      );
      A MAYOR CANTIDAD DE MILISEGUNDOS, MAS LENTO SE MOVERÁ EL FRAME.
      A MAYOR CANTIDAD DE PIXELES A RECORRER EN CADA ITERACIÓN, MÁS "BRUSCO" SALTARÁ EL FRAME DE UNA POSICIÓN A OTRA.
   */
}

  • Efecto para mover a la derecha:

 if((this.getX()+(this.getWidth())) < screenSize.width){
     Animacion.mover_derecha(this.getX(), (this.getX()+(this.getWidth() / 2)), 2, 2, this);
/*Los parámetros a utilizar son:
     Animacion.mover_izquierda(
      coordenada X inicial,
      coordenada X final o destino,
      retardo en milisegundos para cada iteración,
      cantidad de pixeles a recorrer en cada iteración hasta llegar a la coordenada final,
      componente (frame, panel, jdialog)
      );
      A MAYOR CANTIDAD DE MILISEGUNDOS, MAS LENTO SE MOVERÁ EL FRAME.
      A MAYOR CANTIDAD DE PIXELES A RECORRER EN CADA ITERACIÓN, MÁS "BRUSCO" SALTARÁ EL FRAME DE UNA POSICIÓN A OTRA.
   */
}

Efectos Fade

  • Efecto Fade Out (barrido de salida):

/*Puedes utilizar JFrameFadeOut o JDialogFadeOut*/
Fade.JFrameFadeOut(1f, 0f, 0.1f, 50, this,Fade.EXIT);
/*Los parámetros a utilizar son:
     Fade.JFrameFadeOut(
      opacidad inicial (número flotante),
      opacidad final (número flotante),
      decremento para la opacidad-> en este ejemplo decrementa de 0.1 hasta llegar a 0,
      sleep o retardo entre cada iteración en milisegundos,
      componente (frame si usas JFrameFadeOut o jdialog si usas JDialogFadeOut),
      operacion que realizará al terminar el efecto, hay 4 acciones disponibles: EXIT, DISPOSE, HIDE, DO_NOTHING.
      );
      A MAYOR CANTIDAD DE MILISEGUNDOS, MAS TIEMPO SE TARDARÁ EN LLEGAR A LA OPACIDAD FINAL.
      A MAYOR CANTIDAD DE OPACIDAD A DECREMENTAR EN CADA ITERACIÓN, MÁS "BRUSCO" SE IRÁ OCULTANDO EL FRAME.
   */

  • Efecto Fade In (barrido de entrada):

/*Puedes utilizar JFrameFadeOut o JDialogFadeOut*/
Fade.JFrameFadeIn(0f, 1f, 0.1f, 50, frame_a_mostrar);
/*Los parámetros a utilizar son:
     Fade.JFrameFadeOut(
      opacidad inicial (número flotante),
      opacidad final (número flotante),
      incremento para la opacidad-> en este ejemplo incrementa de 0.1 hasta llegar a 1,
      sleep o retardo entre cada iteración en milisegundos,
      componente (frame si usas JFrameFadeIn o jdialog si usas JDialogFadeIn)
      );
      A MAYOR CANTIDAD DE MILISEGUNDOS, MAS TIEMPO SE TARDARÁ EN LLEGAR A LA OPACIDAD FINAL.
      A MAYOR CANTIDAD DE OPACIDAD A DECREMENTAR EN CADA ITERACIÓN, MÁS "BRUSCO" SE IRÁ OCULTANDO EL FRAME.
   */

2 comentarios

  • Luis Peiró

    Hola Noe, primero de todo muchas gracias por compartir tus conocimientos.
    Estoy probando la librería NefAnimacion V2.1, el efecto fade me funciona perfectamente en un JDialog, pero al querer probar la animación(subir, bajar, etc.) con el fade me sale un error, lo que quiero es que cuando presione un botón (ActionListener) haga los dos efectos, pero en el código de la animación me sale un error:
    Animacion.bajar(this.getY(), (this.getY() + (this.getHeight()/2)), 2, 2, this);
    Esta línea la tengo dentro del método que le paso al actionPerformed.
    Me subraya el método bajar y al poner el cursor encima (Eclipse) me sale:
    The method bajar(int, int, long, int, JComponent) in the type Animacion is not applicable for the arguments (int, int, int, int, DialogTorn)
    Despues de escribir Animación. seleciono el método:
    bajar(inicio, fin, retardo, salto, frame)
    Saludos y gracias.

    1. GUI-Box

      Hola Luis, ya probé la línea que te da problemas y si, efectivamente la librería está incorrecta, no funciona para JDialog. En estos momentos ya estoy corrigiendo el problema y en unos minutos puedes volver a descargarla para que funcione tu proyecto correctamente. Saludos y gracias por aportar.

  • Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio utiliza cookies para mejorar tu experiencia y nuestro servicio . Leer más