Intro de démarrage application

Soyez le premier à donner votre avis sur cette source.

Vue 5 695 fois - Téléchargée 1 524 fois

Description

Petite intro d'application incluant une JProgressBar et un JLabel. Possibilité de changer le JLabel pour mettre une image.

Source / Exemple :


import java.awt.BorderLayout;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;

public class intro extends JFrame{
	
	private Thread t;
	private JProgressBar bar;
    private JLabel label = new JLabel ("Lancement du logiciel");
	
	 public intro()
	 {
		 this.setSize(300,80); 
		 this.setLocationRelativeTo(null);
		 this.setUndecorated(true);
		 
		 Font POLICE = new Font("Arial" ,Font.BOLD, 25 );	
		 label.setFont(POLICE); 
		 t = new Thread(new Traitement()); 
		 bar = new JProgressBar();
		 bar.setMaximum(500);
		 bar.setMinimum(0);
		 bar.setStringPainted(true);
		 
		 this.getContentPane().add(bar, BorderLayout.SOUTH);
		 this.getContentPane().add(label, BorderLayout.CENTER);
		 t.start();
		 this.setVisible(true);
		 
	 }
	 class Traitement implements Runnable
	 {
		 public void run()
		 {
			 for(int val = 0; val <= 500; val++)
			 {
				 bar.setValue(val);
				 try
				 {
					 t.sleep(10);
				 }catch (InterruptedException e){e.printStackTrace(); }
			 }		      
			 
		 }
	 }
	 
	 public static void main (String[] args)
	 {
	 intro INTRO = new intro();
	 try {
		Thread.sleep(7000);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	 System.exit(1);
	 }
}

Conclusion :


N'hésitez pas à laisser un commentaire pour me poser vos questions , vos remarques...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
4
Date d'inscription
samedi 10 octobre 2009
Statut
Membre
Dernière intervention
23 avril 2014

Très bon exemple, mais il y a quelques anomalies tout de même. Comme le nom de la classe : c'est "Intro" pas "intro". Il manque un nom de package, et les imports ne sont pas dans le bon ordre (même si ça ne pose aucun problème), il devraient êtres dans cet ordre:

import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;


Avec PMD 5, j'ai comme remarques (ignorer ce qui est relatif à JEE) :

<?xml version="1.0" encoding="UTF-8"?>
<pmd version="5.0.0" timestamp="2014-04-23T15:53:45.903">
<file name="/Users/XXXXX/NetBeansProjectsJDK16/intro/src/intro/Intro.java">
<violation beginline="19" endline="19" begincolumn="20" endcolumn="20" rule="ShortVariable" ruleset="Naming" package="intro" class="Intro" variable="t" externalInfoUrl="http://pmd.sourceforge.net/rules/java/naming.html#ShortVariable" priority="3">
Avoid variables with short names like t
</violation>
<violation beginline="19" endline="19" begincolumn="20" endcolumn="20" rule="BeanMembersShouldSerialize" ruleset="JavaBeans" package="intro" class="Intro" variable="t" externalInfoUrl="http://pmd.sourceforge.net/rules/java/javabeans.html#BeanMembersShouldSerialize" priority="3">
Found non-transient, non-static member. Please mark as transient or provide accessors.
</violation>
<violation beginline="19" endline="19" begincolumn="20" endcolumn="20" rule="ImmutableField" ruleset="Design" package="intro" class="Intro" variable="t" externalInfoUrl="http://pmd.sourceforge.net/rules/java/design.html#ImmutableField" priority="3">
Private field 't' could be made final; it is only initialized in the declaration or constructor.
</violation>
<violation beginline="19" endline="19" begincolumn="13" endcolumn="18" rule="DoNotUseThreads" ruleset="J2EE" package="intro" class="Intro" externalInfoUrl="http://pmd.sourceforge.net/rules/java/j2ee.html#DoNotUseThreads" priority="3">
To be compliant to J2EE, a webapp should not use any thread.
</violation>
<violation beginline="20" endline="20" begincolumn="26" endcolumn="28" rule="BeanMembersShouldSerialize" ruleset="JavaBeans" package="intro" class="Intro" variable="bar" externalInfoUrl="http://pmd.sourceforge.net/rules/java/javabeans.html#BeanMembersShouldSerialize" priority="3">
Found non-transient, non-static member. Please mark as transient or provide accessors.
</violation>
<violation beginline="20" endline="20" begincolumn="26" endcolumn="28" rule="ImmutableField" ruleset="Design" package="intro" class="Intro" variable="bar" externalInfoUrl="http://pmd.sourceforge.net/rules/java/design.html#ImmutableField" priority="3">
Private field 'bar' could be made final; it is only initialized in the declaration or constructor.
</violation>
<violation beginline="21" endline="21" begincolumn="20" endcolumn="24" rule="BeanMembersShouldSerialize" ruleset="JavaBeans" package="intro" class="Intro" variable="label" externalInfoUrl="http://pmd.sourceforge.net/rules/java/javabeans.html#BeanMembersShouldSerialize" priority="3">
Found non-transient, non-static member. Please mark as transient or provide accessors.
</violation>
<violation beginline="21" endline="21" begincolumn="20" endcolumn="24" rule="ImmutableField" ruleset="Design" package="intro" class="Intro" variable="label" externalInfoUrl="http://pmd.sourceforge.net/rules/java/design.html#ImmutableField" priority="3">
Private field 'label' could be made final; it is only initialized in the declaration or constructor.
</violation>
<violation beginline="23" endline="41" begincolumn="12" endcolumn="5" rule="CallSuperInConstructor" ruleset="Controversial" package="intro" class="Intro" externalInfoUrl="http://pmd.sourceforge.net/rules/java/controversial.html#CallSuperInConstructor" priority="3">
It is a good practice to call super() in a constructor
</violation>
<violation beginline="28" endline="28" begincolumn="9" endcolumn="54" rule="LocalVariableCouldBeFinal" ruleset="Optimization" package="intro" class="Intro" variable="POLICE" externalInfoUrl="http://pmd.sourceforge.net/rules/java/optimizations.html#LocalVariableCouldBeFinal" priority="3">
Local variable 'POLICE' could be declared final
</violation>
<violation beginline="28" endline="28" begincolumn="14" endcolumn="19" rule="VariableNamingConventions" ruleset="Naming" package="intro" class="Intro" variable="POLICE" externalInfoUrl="http://pmd.sourceforge.net/rules/java/naming.html#VariableNamingConventions" priority="1">
Variables should start with a lowercase character, 'POLICE' starts with uppercase character.
</violation>
<violation beginline="30" endline="30" begincolumn="17" endcolumn="22" rule="DoNotUseThreads" ruleset="J2EE" package="intro" class="Intro" externalInfoUrl="http://pmd.sourceforge.net/rules/java/j2ee.html#DoNotUseThreads" priority="3">
To be compliant to J2EE, a webapp should not use any thread.
</violation>
<violation beginline="43" endline="43" begincolumn="33" endcolumn="40" rule="DoNotUseThreads" ruleset="J2EE" package="intro" class="Intro$Traitement" externalInfoUrl="http://pmd.sourceforge.net/rules/java/j2ee.html#DoNotUseThreads" priority="3">
To be compliant to J2EE, a webapp should not use any thread.
</violation>
<violation beginline="51" endline="51" begincolumn="21" endcolumn="39" rule="AvoidPrintStackTrace" ruleset="Java Logging" package="intro" class="Intro$Traitement" method="run" externalInfoUrl="http://pmd.sourceforge.net/rules/java/logging-java.html#AvoidPrintStackTrace" priority="3">
Avoid printStackTrace(); use a logger call instead.
</violation>
<violation beginline="58" endline="58" begincolumn="29" endcolumn="41" rule="MethodArgumentCouldBeFinal" ruleset="Optimization" package="intro" class="Intro" method="main" externalInfoUrl="http://pmd.sourceforge.net/rules/java/optimizations.html#MethodArgumentCouldBeFinal" priority="3">
Parameter 'args' is not assigned and could be declared final
</violation>
<violation beginline="59" endline="59" begincolumn="15" endcolumn="19" rule="UnusedLocalVariable" ruleset="Unused Code" package="intro" class="Intro" method="main" variable="INTRO" externalInfoUrl="http://pmd.sourceforge.net/rules/java/unusedcode.html#UnusedLocalVariable" priority="3">
Avoid unused local variables such as 'INTRO'.
</violation>
<violation beginline="59" endline="67" begincolumn="15" endcolumn="33" rule="DataflowAnomalyAnalysis" ruleset="Controversial" package="intro" class="Intro" method="main" variable="INTRO" externalInfoUrl="http://pmd.sourceforge.net/rules/java/controversial.html#DataflowAnomalyAnalysis" priority="5">
Found 'DU'-anomaly for variable 'INTRO' (lines '59'-'67').
</violation>
<violation beginline="59" endline="59" begincolumn="9" endcolumn="33" rule="LocalVariableCouldBeFinal" ruleset="Optimization" package="intro" class="Intro" method="main" variable="INTRO" externalInfoUrl="http://pmd.sourceforge.net/rules/java/optimizations.html#LocalVariableCouldBeFinal" priority="3">
Local variable 'INTRO' could be declared final
</violation>
<violation beginline="59" endline="59" begincolumn="15" endcolumn="19" rule="VariableNamingConventions" ruleset="Naming" package="intro" class="Intro" method="main" variable="INTRO" externalInfoUrl="http://pmd.sourceforge.net/rules/java/naming.html#VariableNamingConventions" priority="1">
Variables should start with a lowercase character, 'INTRO' starts with uppercase character.
</violation>
<violation beginline="64" endline="64" begincolumn="13" endcolumn="31" rule="AvoidPrintStackTrace" ruleset="Java Logging" package="intro" class="Intro" method="main" externalInfoUrl="http://pmd.sourceforge.net/rules/java/logging-java.html#AvoidPrintStackTrace" priority="3">
Avoid printStackTrace(); use a logger call instead.
</violation>
<violation beginline="66" endline="66" begincolumn="9" endcolumn="19" rule="DoNotCallSystemExit" ruleset="J2EE" package="intro" class="Intro" method="main" externalInfoUrl="http://pmd.sourceforge.net/rules/java/j2ee.html#DoNotCallSystemExit" priority="3">
System.exit() should not be used in J2EE/JEE apps
</violation>
</file>

Avec CheckStyle 5.6 :

<?xml version="1.0" encoding="UTF-8"?>
<checkstyle version="5.6">
<file name="/Users/XXXXXX/NetBeansProjectsJDK16/intro/src/intro/Intro.java">
<error line="0" severity="error" message="Missing package-info.java file." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck"/>
<error line="17" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck"/>
<error line="19" column="5" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="20" column="5" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="21" column="5" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="23" column="5" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck"/>
<error line="24" column="22" severity="error" message="'300' devrait être défini comme une constante." source="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"/>
<error line="24" column="27" severity="error" message="'80' devrait être défini comme une constante." source="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"/>
<error line="28" column="14" severity="error" message="Le nom 'POLICE' n'est pas conforme à l'expression '^[a-z][a-zA-Z0-9]*$'." source="com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck"/>
<error line="28" column="52" severity="error" message="'25' devrait être défini comme une constante." source="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"/>
<error line="32" column="24" severity="error" message="'500' devrait être défini comme une constante." source="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"/>
<error line="43" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck"/>
<error line="45" column="9" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck"/>
<error line="46" column="38" severity="error" message="'500' devrait être défini comme une constante." source="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"/>
<error line="49" column="29" severity="error" message="'10' devrait être défini comme une constante." source="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"/>
<error line="58" column="5" severity="error" message="Commentaire javadoc manquant." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck"/>
<error line="58" column="29" severity="error" message="Le paramètre args devrait être final." source="com.puppycrawl.tools.checkstyle.checks.FinalParametersCheck"/>
<error line="59" column="15" severity="error" message="Le nom 'INTRO' n'est pas conforme à l'expression '^[a-z][a-zA-Z0-9]*$'." source="com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck"/>
<error line="61" column="26" severity="error" message="'7000' devrait être défini comme une constante." source="com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck"/>
</file>
</checkstyle>

    
Merci KHALEID,
ça fait plaisir de voir que cela marche (en tout cas sur Windows)... Je me demande ce qu'il se passe sur Ubuntu. Peut-être est-ce seulement JAVA qui ne gère pas aussi bien cet objet sur Windows et sur Ubuntu.
Messages postés
39
Date d'inscription
mercredi 4 juillet 2001
Statut
Membre
Dernière intervention
8 avril 2014

la configuration du pc est pas mal ;core 2 duo 3 go de ram
Messages postés
39
Date d'inscription
mercredi 4 juillet 2001
Statut
Membre
Dernière intervention
8 avril 2014

très bon exemple .
j'ai lancé le code compilé en .jar sous win et c'est parfait la barre progresse de 1 à 100% sans problème .
sous ubuntu 12.04 la barre commence par 4% puis saute vers 25% puis continue normalement jusqu'à 100%.

parfois la barre ne s'affiche pas très bien se bloque puis saute vers 100%

voilà mon expérience :)

merçi.

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.