INTRO DE DÉMARRAGE APPLICATION

khaleid Messages postés 39 Date d'inscription mercredi 4 juillet 2001 Statut Membre Dernière intervention 8 avril 2014 - 13 juin 2013 à 19:49
ungars2 Messages postés 4 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 23 avril 2014 - 23 avril 2014 à 16:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/55145-intro-de-demarrage-application

ungars2 Messages postés 4 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 23 avril 2014
23 avril 2014 à 16:27
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.
khaleid Messages postés 39 Date d'inscription mercredi 4 juillet 2001 Statut Membre Dernière intervention 8 avril 2014 1
14 juin 2013 à 02:32
la configuration du pc est pas mal ;core 2 duo 3 go de ram
khaleid Messages postés 39 Date d'inscription mercredi 4 juillet 2001 Statut Membre Dernière intervention 8 avril 2014 1
13 juin 2013 à 19:49
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.