[Java] Timer et autres

Timer et autres [Java] - Programmation

Marsh Posté le 05-09-2001 à 19:33:53    

Salut,
 
Est-ce qu'il y a moyen de faire un timer en Java autrement que par des thread. C'est pour la gestion d'un menu déroulant, ou plusieur Window pourrais être visible à la fois, mais qu'elle disparaissent apres un certain temps. Parce que avec des thread si j'ai 5 Window d'afficher ça fera 5 threads, c'est peu être un peu lourd comme solution?
Sinon comment vous gérer la clic droit, moi je fais par exemple:
 
public void mouseClicked(MouseEvent e)
{
 if(e.getModifiers()*2 == e.BUTTON2_MASK)
}
 
Mais j'ai ajouter le *2 pour que ça marche, ce qui me parrait étrange.  
 
Merci pour votre aide.


---------------
http://www.cheata.net le site qui vous donne la banane!
Reply

Marsh Posté le 05-09-2001 à 19:33:53   

Reply

Marsh Posté le 06-09-2001 à 11:34:49    

il y a que 5 personnes qu'on lu! :(


---------------
http://www.cheata.net le site qui vous donne la banane!
Reply

Marsh Posté le 06-09-2001 à 12:19:03    

Deja pour ton test pour le click droit, je te rappelle que la valeur que tu testes est un MASK! donc pas de test en '==' plutôt des comparaison de bit '&'...
 
Sinon, je te conseille un thread avec un listener qui va bien. 5 thread ce n'est pas bcp! de plus tu ne peux en faire qu'un si tu programmes astucieusement (mise en tableau des durée et 'balayge' du tableau en fonction de la valeur courante du timer).

Reply

Marsh Posté le 06-09-2001 à 12:36:18    

merci,
pour le & j'aurai bien voulue, mais les valeur que me renvoie e.getModifiers() c'est 4 (quand je fais le click droit) ou 16 (click normale) et e.BUTTON2_MASK vaux 8 donc j'ai beau faire un et binaire ça change rien.
 
Pour les thread j'ai dis 5 comme j'aurais pu dire 20 vu que ça dépendera de la profondeur et du nombre de dossier du menu. En fait je sais pas trop a partir de quand le nombre de thread devient trop grand pour garder de bonne perf.
Quand à n'en faire qu'un je pense que je thread devrait pouvoir accéder à toutes les fenetres que j'aurais créer et je pense que cela remettre mon encapsulation des données par-terre.
Enfin si tu peux préciser je creuserais un peux.
Merci encore.

Reply

Marsh Posté le 06-09-2001 à 13:05:58    

Pour la gestion du click tu peux utiliser la méthode isRightMouseButton(MouseEvent anEvent) de la classe SwingUtilities.
 
public void mouseClicked(MouseEvent e)  
{  
    if(SwingUtilities.isRightMouseButton(e))  
    {
        ...
    }
}  
 
Pour info le mask du click droit est BUTTON3_MASK et non BUTTON2_MASK.

Reply

Marsh Posté le 06-09-2001 à 14:46:38    

Roswell_ a écrit a écrit :

merci,
pour le & j'aurai bien voulue, mais les valeur que me renvoie e.getModifiers() c'est 4 (quand je fais le click droit) ou 16 (click normale) et e.BUTTON2_MASK vaux 8 donc j'ai beau faire un et binaire ça change rien.
 
Pour les thread j'ai dis 5 comme j'aurais pu dire 20 vu que ça dépendera de la profondeur et du nombre de dossier du menu. En fait je sais pas trop a partir de quand le nombre de thread devient trop grand pour garder de bonne perf.
Quand à n'en faire qu'un je pense que je thread devrait pouvoir accéder à toutes les fenetres que j'aurais créer et je pense que cela remettre mon encapsulation des données par-terre.
Enfin si tu peux préciser je creuserais un peux.
Merci encore.  




 
si a un instant t tu connais tes x temps de timer, tu demarres un timer qui s'arreteras (enverras de event) à x1,x2,...
 
Ou alors il tourne tout le temps et tu lui demande un event pour une duree y de ms par exemple...
 
Si tu developpes une GUI en java, tu as dejà pleins de threads! ;)

Reply

Marsh Posté le 06-09-2001 à 14:51:50    

dans java.util y'a une class Timer qui sert à ça.

Reply

Marsh Posté le 06-09-2001 à 16:58:30    

ok merci a tous.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed