Projet gus05 de développement Java
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-40%
Le deal à ne pas rater :
-40% sur le Pack Gaming Mario PDP Manette filaire + Casque filaire ...
29.99 € 49.99 €
Voir le deal

Quitter l'application en dissolvant les fenêtres

Aller en bas

Quitter l'application en dissolvant les fenêtres Empty Quitter l'application en dissolvant les fenêtres

Message  Gus Dim 24 Avr - 23:05

Voici une entité à lancer au démarrage de l'application qui permet de donner un effet de dissolution aux fenêtres lorsque vous quittez l'application. Cette entité nécessite le gestionnaire Kassia version 20110424 ou plus. Par ailleurs, elle utilise l'API JNA (Java Native Access).

gus.graphic.frame.dissolveonexit

Cette entité comporte d'une classe dont le code source est donné ci-dessous :

Code:
package gus05.entity.gus.graphic.frame.dissolveonexit;

import java.awt.Frame;
import java.util.Map;

import com.sun.jna.platform.WindowUtils;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.features.Execute;
import gus05.framework.tools.DefaultSupport;

public class DissolveOnExit extends DefaultSupport implements Entity, Runnable, Execute {


    public String getName()         {return "gus.graphic.frame.dissolveonexit";}
    public String getCreationDate()      {return "2011.04.21";}

   
    public static final String POOL_OBJ_EXITTRIGGER = "app.exittrigger";
    public static final float DELTA = 0.05f;
    public static final long LAPSE = 40;
   

    private Map pool;


    public DissolveOnExit() throws Exception
    {
       pool = (Map) Outside.resource(this,"internal.poolmap");
       pool.put(POOL_OBJ_EXITTRIGGER,this);
    }
   
   public void execute() throws Exception
   {new Thread(this,"THREAD_"+getName()).start();}
   
   
   public void run()
   {
      Frame[] frames = Frame.getFrames();
      System.setProperty("sun.java2d.noddraw","true");
      float alpha = 1f;
      while(alpha>0)
      {
         alpha -= DELTA;
         for(int i=0;i<frames.length;i++)
         WindowUtils.setWindowAlpha(frames[i],alpha);
         
         try{Thread.sleep(LAPSE);}
         catch(InterruptedException e){}
      }
      System.getProperties().remove("sun.java2d.noddraw");
      triggerExit();
   }
   
   private void triggerExit()
   {send(this,"triggerExit()");}
}
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum