Splash screen avec jprogressbar

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 706 fois - Téléchargée 18 fois

Contenu du snippet

Comme je n ai trouvé aucun SplashScreen avec une JProgressBar pour indiquer l'état de l avancement j'ai décidé de poster le mien .
Il peut largement etre amélioré avec , par exemple un mediatracker sur le panel pour couvrir le panel de l'image .
On verra ca plus tard :p

Pour l'utiliser il faut détérminer la vitesse dans la methode run();
Puis caster

Splash splash =
new Splash(String pathImage , String messageToDisplay , String pathIconeFrame);

Et voila :)

Source / Exemple :


/*
 *

  • @Author Adrien PARENTY
*
  • /
import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Splash { JProgressBar progress; Thread thread; public static JFrame frame; public static void main(String[] args){ new Splash("Logo.gif","E.A.S.\u03A8 Version 1.0 Chargement...","icone.gif");//Path de l'image qu'on veut ,message,ainsi que l icone de la fenetre } public Splash(String imgPath, String message,String icone) { frame = new JFrame("Chargement"); frame.setIconImage( Toolkit.getDefaultToolkit().getImage(icone));//icone de la Jframe JPanel panel = new JPanel(); panel.setBackground( new Color(124,125,235));//Couleur de fond du Panel panel.setSize(450,250); panel.setBounds(0,0,450,250); JLabel texte = new JLabel(message);//Texte de la String texte.setForeground(Color.ORANGE); JLabel img = new JLabel(); img.setIcon( new ImageIcon(imgPath)); progress = new JProgressBar(0, 100); panel.setBorder( BorderFactory.createLineBorder(Color.BLACK)); progress.setStringPainted(true); //ajout des éléments panel.add("North",img); panel.add("North",texte); panel.add("East",progress); frame.getContentPane().add(BorderLayout.CENTER, panel); frame.setSize(450,250); //Pour définir le Splash au milieu de l'écran' Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation((screen.width - frame.getSize().width)/2,(screen.height - frame.getSize().height)/2); // pour que ca ai vraiement l air d un splash :p frame.setUndecorated(true); frame.setVisible(true); frame.setResizable(false); //Retaillage de la barre pour qu elle corresponde a la taille de la frame progress.setBounds(new Rectangle(10,220,430,20)); // Création de thread pour afficher la progression de la barre thread = new Thread( new Progression()); thread.start(); //On peut ajouter un Thread d'une classe de traitement qui implemente un Runnable //et les switcher. } public class Progression implements Runnable { public void run() { for (int j = 1; j < 100; j++) { progress.setValue(j); progress.setString(j+" %"); try { thread.sleep(40);//determination de la rapiditée de la frame } catch(Exception e) { e.printStackTrace(); frame.dispose();//en cas d' erreur pour pas rester bloqué sur le splash } } frame.dispose(); //fermeture de la frame lorsque le chargement est teminé } } }

A voir également

Ajouter un commentaire

Commentaires

Darine05
Messages postés
1
Date d'inscription
lundi 25 février 2013
Statut
Membre
Dernière intervention
23 mars 2013
-
bonjour, j'ai besoin d'un progress bar qui avance avec l'exécution de mon application, pouvez vous m'aider à exploiter ce code
cs_GodConan
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
9 -
Source quelque peu obsolete depuis le JDK 1.6 qui integre deja une class SplashScreen il suffi juste d y coler une progresse bar..
GillesWebmaster
Messages postés
507
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1 -
On se réjouis
P.S: note: 10/10!!!
tlaloctzin
Messages postés
136
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
12 septembre 2013
2 -
Salut ,
ca s est pour l exemple , libre a toi de créer un autre thread pr un chargment ( c' est ce que j ai fais dans mon appli ) ,

puis tu switch les thread et assigne la valeure de la barre quand ton opération se termine .

je posterais l'exemple quand j'aurais terminé le projet sur lequel je bosse .
darthpolor_I
Messages postés
57
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
14 juillet 2008
-
Salut,

Il me semble bien que c'est pas une "vraie" barre de chargement
puisque c'est ton splash lui meme qui met a jour la progress bar
(Thread.sleep(40))
Ca n'indique donc pas un temps de chargement pour une etape de la construction de l'application

DarthPolor / PeGyDeuzHem

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.