begin process at 2012 02 15 11:20:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

Splah screen


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Splah screen

vendredi 6 juin 2008 à 08:45:05 | Splah screen

romainbisson

Bonjour,

J'aimerais faire un Splash Screen avant l'ouverture de mon programme, j'ai deja fait l'image de ce splash screen. donc jai trouvé une source mais je ne vois comment l'integrer a mon code

************************************************************************************************

Voici une classe qui peux vous etre utilile si vous désirez afficher un splash screen ( écran de démarrage ) en swing.


Cette classe prend en parametres le nom du fichier image que vous voulez afficher, la frame qui va s'afficher, et le temps jusqu'a ce quelle soit rendue invisble.
Deux thread sont lancé :
  • un qui attend le temps voulu pour l'affichage du splash screen, puis qui lance le second thread
  • l'autre qui rend invisible la frame


package main;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
@SuppressWarnings("serial") class SplashWindow extends JWindow {
   
   
public SplashWindow(String filename, Frame f, int waitTime) {
        super(f);
        //cree un label avec notre image
        JLabel l = new JLabel(new ImageIcon(filename));
        //ajoute le label au panel
        getContentPane().add(l, BorderLayout.CENTER);
        pack();
       
        //centre le splash screen
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension labelSize = l.getPreferredSize();
        setLocation(screenSize.width / 2 - (labelSize.width / 2),
                screenSize.height / 2 - (labelSize.height / 2));
       
        //rend le splash screen invisible lorsque l'on clique dessus
        addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                setVisible(false);
                dispose();
            }
        });
       
        //afin d'acceder à la valeur WaitTime
        final int pause = waitTime;
       
        //thread pour fermer le splash screen
        final Runnable closerRunner = new Runnable() {
            public void run() {
                setVisible(false);
                dispose();
            }
        };
       
       
        Runnable waitRunner = new Runnable() {
            public void run() {
                try {
                    Thread.sleep(pause);
                    //lance le thread qui ferme le splash screen
                    SwingUtilities.invokeAndWait(closerRunner);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };
       
        //affiche le splash screen
        setVisible(true);
       
        //lance le thread qui ferme le splash screen apres un certain temps
        Thread splashThread = new Thread(waitRunner, "SplashThread");
        splashThread.start();
    }

-----------------------------------------------------------------------------------------------
                                   Voici mon code
-----------------------------------------------------------------------------------------------


import java.awt.*;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Bisson extends JFrame implements MouseListener
{

private static final long serialVersionUID =1L;

/*************************** Déclarations Champs de Texte
*******************************/

static JTextField zone_nom;
static JTextField zone_prenom;
static JTextField zone_adresse;
static JTextField zone_code_postal;
static JTextField zone_ville;
static JTextField zone_telephone;

/***********************************Déclarations Boutons
********************************/

static JButton bouton_facture;
static JButton bouton_devis;
static JButton bouton_commande;

/********************************* Etiquette - Label - Image
******************************/

static JLabel logo;
static JLabel version;
static JLabel facture;
static JLabel devis;
static JLabel commande;

/*************************************    Image de fond   
*******************************/
static Image fond;

//
**************************************************************************************
//                               PREMIER CONSTRUCTEUR
//
**************************************************************************************

public Bisson(){

                //On donne un titre à la fenetre
                                super("Bisson Informatique");

                //Cette opération est réalisé lors de la fermeture de la fenetre
                                setDefaultCloseOperation(DISPOSE_ON_CLOSE);

                //Taille de la fenetre 1024*768
                                setBounds(0,0,1024,768);

                //La fenetre n'est pas redimensionable
                                setResizable(false);

                        ImageIcon icon = new ImageIcon("images/logo.jpg");
                        logo = new JLabel();
                        logo.setIcon(icon);
                        logo.setBounds(40,250,450,300);

                /**** bouton facture *****/

                         bouton_facture = new JButton();
                         bouton_facture.setIcon(new ImageIcon("images/icone.gif"));
                         bouton_facture.setBounds(100,50,120,120);

                         facture = new JLabel("Facture");
                         facture.setForeground(Color.blue);
                         facture.setFont(new Font("Helvetica", Font.PLAIN, 20));
                         facture.setBounds(130,170,80,40);

                /**** bouton devis *****/

                         bouton_devis = new JButton();
                         bouton_devis.setIcon(new ImageIcon("images/icone.gif"));
                         bouton_devis.setBounds(300,50,120,120);

                         devis = new JLabel("Devis");
                         devis.setForeground(Color.blue);
                         devis.setFont(new Font("Helvetica", Font.PLAIN, 20));
                         devis.setBounds(335,170,80,40);

                /**** bouton commande *****/

                         bouton_commande = new JButton();
                         bouton_commande.setIcon(new ImageIcon("images/icone.gif"));
                         bouton_commande.setBounds(500,50,120,120);

                         commande = new JLabel("Commande");
                         commande.setForeground(Color.blue);
                         commande.setFont(new Font("Helvetica", Font.PLAIN, 20));
                         commande.setBounds(510,170,120,40);

                         version = new JLabel("Version 1.0");
                         version.setForeground(Color.blue);
                     version.setFont(new Font("Helvetica", Font.PLAIN, 28));
                     version.setBounds(870,700,200,50);

                         setResizable(false);

                          //création du container
                          JLabel container = new JLabel();
                          // chargement de l'image
                          ImageIcon background = new ImageIcon("images/fond.jpg");
                          //on s'assure que l'image soit bien chargée
                          background.getImage();
                          // charge l'image
                          container.setIcon(background);
                          //changement du layout (pour reprendre ce que tu as fait
                          container.setLayout(null);
                          //ajout des composants
                          container.add(bouton_facture);
                          container.add(facture);
                          container.add(bouton_devis);
                          container.add(devis);
                          container.add(bouton_commande);
                          container.add(commande);
                          container.add(logo);
                          container.add(version);
                          //ajout du container
                          setContentPane(container);

                          bouton_facture.addMouseListener(this);
                          bouton_devis.addMouseListener(this);
                          bouton_commande.addMouseListener(this);


                //On rend la fenetre lisible
                        setVisible(true);
                }

public void mouseClicked(MouseEvent e) {}

//Invoked when a mouse button has been pressed on a component.
public void mousePressed(MouseEvent e) {}

//Invoked when a mouse button has been released on a component.
public void mouseReleased(MouseEvent e) {}

//Invoked when the mouse enters a component.
public void mouseEntered(MouseEvent e) {}

//Invoked when the mouse exits a component.
public void mouseExited(MouseEvent e) {}

//Permet l'execution du programme
public static void main(String[] args){

        new Bisson();

        }

}

vendredi 6 juin 2008 à 08:55:20 | Re : Splah screen

Ombitious_Developper

Salut:

Java 1.6 intégre la classe SpalshScreen, qui a l'apport de se lancer au démarrage de l'application avant même que la JVM démarre.

Référence: (Documentation Java 1.6)
"The splash screen can be created at application startup, before the Java Virtual Machine (JVM) starts. The splash screen is displayed as an undecorated window containing an image."



vendredi 6 juin 2008 à 08:58:59 | Re : Splah screen

romainbisson

ça a l'air bien cette classe mais on l'utilise comment ?
vendredi 6 juin 2008 à 09:30:08 | Re : Splah screen

Ombitious_Developper

Salut:

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/splashscreen/
java.sun.com/javase/6/docs/api/java/awt/SplashScreen.html

vendredi 6 juin 2008 à 10:08:59 | Re : Splah screen

romainbisson

Ok, 

moi je veux juste que le programme prenne une image dans image/splah.jp et ensuite l'affiche pendant 5s aux dimensions 400*400 avant mon programme, car je conprend rien a ton lien, je pense que c'est tro compliqué pour ce que je veux faire
vendredi 6 juin 2008 à 14:13:04 | Re : Splah screen

Ombitious_Developper

Salut:

En fait c'est simple.

import java.awt.SplashScreen;

import java.awt.event.ComponentListener;
import java.awt.event.ComponentEvent;

import javax.swing.JFrame;

public class DemoSplashScreen extends JFrame implements ComponentListener {   
    public DemoSplashScreen() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400, 400);
        setTitle("SplashScreen");
        addComponentListener(this);
    }
   
    @Override
    public void componentHidden(ComponentEvent e) {}
    
    @Override
    public void componentMoved(ComponentEvent e) {}

    @Override
     public void componentResized(ComponentEvent e) {}
    
    @Override
    public void componentShown(ComponentEvent e) {
        SplashScreen ss = SplashScreen.getSplashScreen();
        if (ss != null) {
            ss.close();
        }
    }

    public static void main(String[] args) {
        DemoSplashScreen demo = new DemoSplashScreen();
        demo.setVisible(true);
    }
}



vendredi 6 juin 2008 à 14:15:14 | Re : Splah screen

Ombitious_Developper

Salut:

J'ai oublié d'ajouter ceci: (Remplace image.png par le nom excate de ton fichier image.)

C:\>javac DemoSplashScreen.java

C:\>java -splash:image.png DemoSplashScreen


vendredi 6 juin 2008 à 14:20:32 | Re : Splah screen

Ombitious_Developper

Salut:

Au cas où la classe SplashScreen ne te satisfait pas, tu peux utiliser l'API open-source Zeus

Zeus:
http://sourceforge.net/projects/zeus-jscl/
vendredi 6 juin 2008 à 14:26:06 | Re : Splah screen

romainbisson

ok, sa a l'air cool mais je vourdais l'integrer a mon programma que j'ai poster et je compile avec esclipse donc je n'ai de ligne de commande, il doit connaitre le fichier tout seul
vendredi 6 juin 2008 à 20:47:50 | Re : Splah screen

Ombitious_Developper

Salut:

Il suffit de suivre cet démarche:

1. Dérouler le menu contextuel en faisant un click droit sur la classe principale de ton projet (celle qui contient le main())

2. Run As

3. Open Run Dialog

4. Double-click sur noeud Java Application

5. Séléctionner l'onglet Arguments

6. Dans la zone de saisie VM arguments ajoutes cette ligne:  -splash:image.png


Cette discussion est classée dans : bouton, static, jlabel, import, facture


Répondre à ce message

Sujets en rapport avec ce message

Probleme JFrame [ par romainbisson ] Bonjour je souhaite effacer le contenut de ma Jframe et lors de l'action sur un bouton, je souhaite qu'elle soit redessiner mais je ne sais pas commen probleme avec le drag and drop [ par Nayra ] Bonsoir à tous,alors je vous présente ce code :[B]import java.awt.Event;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import ja probleme d'affichage de mon applet [ par limalima ] Bonjour à tous, j'ai commencé à apprendre les applets, je pensais que c'était simple mais je me rend compte que finalement j'y pas capté grand chose: probleme de log avec l api log4j [ par hamster007 ] bonjour à tous; voila mon logger marche bien lorsque que je l'utilise d'un main de test, mais des que je l insere dans mon appli (sous eclipse) ben Bouton rond [ par momjunior ] Bonjour, J'ai la classe suivante qui permet de créer un bouton rond avec une image au-dessus: [code=java]import java.awt.Color; import java.awt.Grad Problème suppression élément xml [ par bidule7 ] Bonjour, j'ai écrit un code pour supprimer un élément dans un fichier XML. Ce code fonctionne, oui....mais qu'une seule fois. Si je le lance, ça me su Fermer JFrame à partir d'un JPanel en static..? [ par ehochedez ] J'ai une application avec plusieurs fenetres. Chaque fenetre est composée de 3 JPanels dont 2 sont en Static puisqu'ils sont communs à toutes les fene mouvement d'un jlabel [ par lamia88 ] bonjours, jai crée un jlable nommé label2,et je veut modifier ca place,jai utilisée setbounds mais sa ne fonctionne pas. qulqun peut maider et merci d probléme avec ireport et code java [ par jadikha ] bonjour à tous, je suis entrain d'implémenter un code permettant l'impression des fichiers, en java j'utilise le ireport pour créer les fichers .jrxml


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,051 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales