Affichage d'un message avec effet de fondu

5/5 (4 avis)

Vue 18 076 fois - Téléchargée 1 079 fois

Description

Le code afiche un message de façon esthetique, un effet de fondu jaune sur fond noir.

Source / Exemple :


import java.awt.*;

public class Clign extends java.applet.Applet  implements Runnable
{
Thread t;
int Indic = 1, x1, x2;
Graphics Gmem;  //Déclaration d'un objet graphics 
Image ii; //Objet image
String text[]={"Bienvenue", "      sur", " PCisland"};            //message à afficher

        public void init()
	{
        ii = createImage(getSize().width,getSize().height);   //création d'une image à la taille de l'applet
        Gmem = ii.getGraphics();   //Pour le création de l'image avec les outils graphiques de java
        }

//Démarrage du Thread
        public void start()
        {
        	if(t==null)
                {
                t = new Thread(this);
                t.start();
                }
        }

//Arrêt du Thread
        public void stop()
        {
        if(t!=null)
        {
        Indic =0;
        t=null;
        }
        }

        public void run()
        {
        	while(Indic==1)
        	{
                for(x2=0; x2<3; x2++)  //Passe les mots un par un ici 3 mots
                {
                        for(x1=0;x1<256;x1+=2)        //Augmente le ton de la couleur 
        		{
                        attendre(10);
                        }
                        for(x1=255; x1>0;x1--)       //Diminue le ton de la couleur
                        {
                        attendre(8);
                        }
                }
        	}
        }

        public void attendre(int t)       //fonction d'attente + rafraichissement applet
        {
                        repaint();
        		try
        		{
        		Thread.sleep(t);
        		}
                        catch(InterruptedException ie)
                        {
                        }
        }

//Pour éviter les scintillement
        public void update(Graphics g)
        {
        paint(g);
        }

        public void paint(Graphics g)
        {
        Gmem.setColor(Color.black);     //Couleur de fond
        Gmem.fillRect(0,0,300,100);       //rectangle à la taille de l'applet
        Gmem.setColor(new Color(x1,x1,0));     //Couleur du texte
        Gmem.setFont(new Font("Helvetica",Font.BOLD,40));  //Police du texte+taille
        Gmem.drawString(text[x2],55,60);      //Affichage des messages
        g.drawImage(ii,0,0,this);      //Affichage de l'image 
        }
}

Conclusion :


Pour faire un effet de fondu, on utilise les thread pour créer une animation.
Toute les x secondes on augmente les ton des couleurs RGB ce qui donne cet effet.
Le reste de l'explication est dans la source.
Si vous avez des questions écrivez moi!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
goldtiger Messages postés 31 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 7 février 2012
2 juil. 2010 à 11:22
wow ça c du code ;)
bobbyf Messages postés 4 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 25 mai 2003
25 mai 2003 à 18:23
j'ai essaye d'ajouter le code suivant pour passer l'applet en application mais quand je fait java j'ai un java.NullPointerException at Clign.init . merci de me repondre

public static void main(String args[]) {
Frame frame = new Frame();
Clign ap = new Clign();
ap.init();
ap.start();
frame.add("Center",ap);
frame.setSize(400,150);
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
cs_Bog Messages postés 29 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 28 janvier 2003
2 mai 2003 à 23:41
G fait un travail équivalent pour un ancien projet...
T'as qu'à aller voir ce que ca donne, je pense pas que t'aies besoin de threads pour les fadings.
http://www.javafr.com/article.aspx?Val=78

En plus j'ai tout expliqué, commenté le code pour personnaliser son texte et les couleurs de fading.
Dis moi ce que tu (vous) en penses (pensez).

A+
gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
4 sept. 2002 à 00:44
prout

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.