IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

encore l'applet d'horloge


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 45
    Points
    45
    Par défaut encore l'applet d'horloge
    Bonjour tout le monde..

    J'ai résolu mes problèmes antérieurs en développant mon applet d'horloge. et voila ce que j'ai réussi à faire jusqu'à ce moment:
    J'ai l'horloge qui affiche l'heure du système en aiguilles , mais juste l'heure de l'exécution et il s'arrête , il ne s'actualise pas.
    je veux qu'il suit l'heure.
    je sais que ça se fait à l'aide de la méthode "repaint()" mais où je dois la mettre et comment?

    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    Il faudra utiliser les Threads.

    Ou en est ton programme maintenant ?

    Dan

  3. #3
    Membre éprouvé
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Points : 950
    Points
    950
    Par défaut encore l'applet d'horloge
    Bonjour,
    Il y a un exemple très explicite publié sur Developpez.com, tu peux t'inspirer, voici le lien

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 45
    Points
    45
    Par défaut ça avance Dan
    Merci kmdkaci pour ton lien je vais voir.
    Mon applet va bien Damino et c'est grâce à toi, à chaque exécution de l'applet j'obtiens l'aiguille des minutes sur le numéro exact mais ça doit être actualisé a chaque incrémentation de minute et c'est ce que je demande maintenant , je vais voir ce qu'on me vient de proposer et je vous avise les résultats
    Merci

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 45
    Points
    45
    Par défaut ça a marché
    Merci les gars ça a marché trés bien.
    J'ai utilisé un Thread qui "repaint()" chaque minute en utilisant la methode sleep comme j'ai vu dans l'exemple cité avant.
    je peux continuer maintenant

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Salut,

    Je t'avai envoyé un MP avec un petit exemple (un peu plus simple),l'as-tu lu?

    Dan

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 45
    Points
    45
    Par défaut
    tu parles du lien que tu m'as envoyé? si c'est ça alors oui c'est celui ci qui m'a aidé énormément avec un pdf de cours que j'ai déjà. merciiiiii Dan
    Tu es trop helpfull

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 45
    Points
    45
    Par défaut
    salut tous , j'ai suivi vos conseils pour développer l'horloge et ça a marché comme j'ai déjà dit pour dessiner une aiguille , de minutes , et j'ai utilisé un Thread pour l'actualiser selon l'heure système et ça a marché , mais quand je voulais appliquer ça sur la deuxième aiguille il parait que j'ai touché quelque chose et ça s'est arrêté de s'actualiser selon le thread . et même quand j'ai annulé les modifications pour revenir à l'étape de l'aiguille minutes , ça na pas marché.
    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
     
    mport java.awt.*;
    import java.applet.*;
    import java.math.*;
    import java.util.*;
     
     
     public class reloje extends Applet implements Runnable{
    	int x=0,y=0;
    	Thread tr;
    	public  void init() {
     
    	}
     
     
    	public  void paint(Graphics g) {
    			g.drawOval(200,100 , 150, 150);
    		g.drawString("12",270,112);
    		g.drawString("9",202,180);
    		g.drawString("3",342,180);
    		g.drawString("6",272,247);
     
              g.drawLine(275, 175,275+ (Integer)(Math.round(ext.abcisse(ext.anglemin( ext.determinermin() )))), 175-(Integer)(Math.round(ext.ordonné(ext.anglemin( ext.determinermin() )))));
     
    	}
    	public reloje(){
    		if(tr==null){
     
    		 tr=new Thread(this);
    		tr.start();}
     
    	}
    	public void run(){
    		while(true){
    			repaint();
    			try{Thread.sleep(60000);
    			}
    			catch (InterruptedException e){
    			}
     
    		}
    	}
     
    }
     class ext  {
     	int x , y ;
        static final float pi=3.141f ;
        public	static GregorianCalendar madate = new GregorianCalendar();
     
     	public static float anglemin(int min){
     		int minu=0 ;
     		minu = min ;
     		float alfa=0 ; 
     			if(minu <15){
     				alfa = (pi/2-minu*pi/30) ;}
     
     						else if (15 <= minu & minu< 30){
     							alfa= (15- minu)*pi/30;}
     							else if (30<= minu & minu < 45){
     							alfa=3*pi/2-(minu - 30)*pi/30;	}
     							else if (45<= minu & minu <60){
     								alfa= pi-(minu-45)*pi/30;
     							}
     		return alfa ;
     
     	}
     
    	public static float abcisse(float alfa){
            float a=0 ;
            a= (float) Math.cos(alfa)*72;        
            return a;
            }
         public static   float ordonné(float alfa){
            float b =0;
            b = (float) Math.sin(alfa)*72;
            return b ;
     
            }
            public static int determinermin(){
     
     
                     int min = madate.get(Calendar.MINUTE);
    	return min;
     
            	}
     
     }
    c'est le code d'une seule aiguille
    Merci pour votre aide

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut reloje
    Bonjour,

    Modifs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    import java.awt.*;
       import java.applet.*;
       import java.math.*;
       import java.util.*;
     
        public class reloje extends Applet implements Runnable
       {
          int x=0,y=0;
          int min = 0; //<<<<<<<<<<<<<<<<<<<<<<<<<<
          int heure = 0; // pour la suite <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
          Thread tr;
           public void init()
          {
          }
     
           public void paint(Graphics g)
          {
             g.drawOval(200,100 , 150, 150);
             g.drawString("12",270,112);
             g.drawString("9",202,180);
             g.drawString("3",342,180);
             g.drawString("6",272,247);
             g.drawLine(275, 175,275 + (Integer)(Math.round(ext.abcisse(ext.anglemin
                ( min )))), 175-(Integer)  //<<<<<<<<<<<<<<<<<<<<<<
                (Math.round(ext.ordonné(ext.anglemin(min ))))); //<<<<<<<<<<<<<<<<<<<<<<<
                //( ext.determinermin() )))), 175-(Integer)
               // (Math.round(ext.ordonné(ext.anglemin( ext.determinermin() )))));
          }
     
           public void start()
          {
             if (tr == null)
             {
                tr = new Thread(this, "reloje");
                tr.start();
             }
          }
     
           /*public reloje()  // supprimer
          {
             if(tr==null)
             { 
                tr=new Thread(this);
                tr.start();
             }
          } */
     
           public void run()
          {
             Thread filActuel = Thread.currentThread();  // <<<<<<<<<<<<<<<<<<<<<<<
             //while(true) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             while (tr == filActuel) // <<<<<<<<<<<<<<<<<<<<<<<<<<<
             {
                 //  ****** Pour obtenir l'heure ******
                GregorianCalendar madate = new GregorianCalendar(); //<<<<<<<<<<<<<<<<<<<<<<<<<<<
                heure = madate.get(Calendar.HOUR);
                min = madate.get(Calendar.MINUTE);
                repaint();
                try
                {
                  // Thread.sleep(6000); // 1 minute c'est trop, le Thread 
     //se réveille trop tard après le changement de minute (quelques secondes )
                 //, 1 seconde c'est bon
                 Thread.sleep(10000); 
                }
                    catch (InterruptedException e)
                   {
                   }
             }
          }
     
       }
        class ext
       {
          int x , y ;
          static final float pi=3.141f ;
          public static GregorianCalendar madate = new GregorianCalendar(); 
           public static float anglemin(int min)
          {
             int minu=0 ;
             minu = min ;
             float alfa=0 ; 
             if(minu <15){alfa = (pi/2-minu*pi/30) ;
             } 
             else if (15 <= minu & minu< 30){alfa= (15- minu)*pi/30;
             }
             else if (30<= minu & minu < 45){alfa=3*pi/2-(minu - 30)*pi/30;
             }
             else if (45<= minu & minu <60){alfa= pi-(minu-45)*pi/30;
             }
             return alfa ;
          } 
           public static float abcisse(float alfa){float a=0 ;a= (float) Math.cos(alfa)*72; 
             return a;
          }
           public static float ordonné(float alfa){float b =0;b = (float) Math.sin(alfa)*72;
             return b ;
          }
           /*public static int determinermin()  //<<<<<<<<<<<<<<<<<<<<<<<<
          {  int min = madate.get(Calendar.MINUTE); //<<<<<<<<<<<<<<<<<
             return min; //<<<<<<<<<<<<<<<<<<<<<<<<
          }*/ <<<<<<<<<<<<<<<<<<<<<<<<<
       }
    Cordialement,

    Dan

    Edit :Thread.sleep(60000); // 1 minute c'est trop, le Thread se réveille quelques secondes après le changement de minute
    //, 1 seconde c'est bon.

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 107
    Points : 45
    Points
    45
    Par défaut l'horloge marche maintenant :D
    wiwi DAn ta raison pour ta derniere remarque , maintenant mon horloge marche très bien et voici le code final

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    import java.awt.*;
       import java.applet.*;
       import java.math.*;
       import java.util.*;
     
        public class reloje extends Applet implements Runnable
       {
          int x=0,y=0;
          int min = 0; //<<<<<<<<<<<<<<<<<<<<<<<<<<
          int heure = 0; // pour la suite <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
          Thread tr;
           public void init()
          {
          }
     
           public void paint(Graphics g)
          {
             g.drawOval(200,100 , 150, 150);
             g.drawString("12",270,112);
             g.drawString("9",202,180);
             g.drawString("3",342,180);
             g.drawString("6",272,247);
             g.drawLine(275, 175,275 + (Integer)(Math.round(ext.abcisse(ext.anglemin
                ( min )))), 175-(Integer)  //<<<<<<<<<<<<<<<<<<<<<<
                (Math.round(ext.ordonné(ext.anglemin(min ))))); //<<<<<<<<<<<<<<<<<<<<<<<
                //( ext.determinermin() )))), 175-(Integer)
               // (Math.round(ext.ordonné(ext.anglemin( ext.determinermin() )))));
               g.drawLine(275, 175,275+ (Integer)(Math.round(ext.abcisseh(ext.anglehour( heure )))), 175-(Integer)(Math.round(ext.ordonneh(ext.anglehour( heure )))));
          }
     
           public void start()
          {
             if (tr == null)
             {
                tr = new Thread(this, "reloje");
                tr.start();
             }
          }
     
                public void run()
          {
             Thread filActuel = Thread.currentThread();  // <<<<<<<<<<<<<<<<<<<<<<<
     
             while (tr == filActuel) // <<<<<<<<<<<<<<<<<<<<<<<<<<<
             {
                 //  ****** Pour obtenir l'heure ******
                GregorianCalendar madate = new GregorianCalendar(); //<<<<<<<<<<<<<<<<<<<<<<<<<<<
                heure = madate.get(Calendar.HOUR);
                min = madate.get(Calendar.MINUTE);
                repaint();
                try
                {
                   Thread.sleep(1000); // 1 minute c'est trop, 1 seconde c'est bon
     
                }
                    catch (InterruptedException e)
                   {
                   }
             }
          }
     
       }
        class ext
       {
          int x , y ;
          static final float PI=3.141f ;
           public static float anglemin(int min)
          {
             int minu=0 ;
             minu = min ;
             float alfa=0 ; 
             if(minu <15){alfa = (PI/2-minu*PI/30) ;
             } 
             else if (15 <= minu & minu< 30){alfa= (15- minu)*PI/30;
             }
             else if (30<= minu & minu < 45){alfa=3*PI/2-(minu - 30)*PI/30;
             }
             else if (45<= minu & minu <60){alfa= PI-(minu-45)*PI/30;
             }
             return alfa ;
          } 
           public static float abcisse(float alfa){float a=0 ;a= (float) Math.cos(alfa)*70; 
             return a;
          }
           public static float ordonné(float alfa){float b =0;b = (float) Math.sin(alfa)*70;
             return b ;}
     
     
     
             public static float anglehour(int hour){
     		int ho= hour ;
     		  GregorianCalendar madate = new GregorianCalendar();
     		float alfa=0 ;
     		int plusdangle=madate.get(Calendar.MINUTE)/12 ;
     			if(ho <3){
     				alfa = (PI/2-ho*PI/6)-plusdangle*PI/30 ;}
     
     						else if (3 <= ho & ho< 6){
     							alfa= (3- ho)*PI/6-plusdangle*PI/30 ;}
     							else if (6<= ho & ho < 9){
     							alfa=3*PI/2-(ho - 6)*PI/6-plusdangle*PI/30 ;	}
     							else if (9<= ho & ho <12){
     								alfa= PI-(ho-9)*PI/6-plusdangle*PI/30 ;
     							}
     		return alfa ;
     
     	}
     
     
     
               	public static float abcisseh(float alfa){
            float a=0 ;
            a= (float) Math.cos(alfa)*58;        
            return a;
            }
         public static   float ordonneh(float alfa){
            float b =0;
            b = (float) Math.sin(alfa)*58;
            return b ;
     
            }
          }
    muchisimas gracias amigo mio y hasta la proxima

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Encore une applet java en html
    Par AthenA714 dans le forum Applets
    Réponses: 4
    Dernier message: 26/05/2010, 00h59
  2. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  3. Applet: AWT est-il encore d'actualité?
    Par Rodrigue dans le forum Applets
    Réponses: 2
    Dernier message: 18/10/2007, 19h35
  4. Réponses: 8
    Dernier message: 19/01/2006, 20h00
  5. [Applet]Horloge avec Java
    Par tachag dans le forum Applets
    Réponses: 2
    Dernier message: 28/12/2004, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo