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

AWT/Swing Java Discussion :

Détecter le fin de la rotation de la molette de la souris


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut Détecter le fin de la rotation de la molette de la souris
    Bonjour,

    Dans mon applet, j'ai ajouter la gestion de la roulette de la souris.

    Mon problème est que lors de l'action sur la roulette j'exécute une fonction et que une partie de ce traitement est long. Donc je voudrait n'exécuter cette partie que lorsque l'utilisateur a terminé de "jouer" avec la molette, tout en exécutant le reste a chaque mouseWheelMoved.

    Comment faire ?
    Comment mettre en place un bolleen qui m'indiquera que l'utilisateur a terminé de manipuler la molette ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    Bonjour,

    je ne sais pas si ca va répondre à ta question mais si tu regarde l'argument de mouseWheelMoved qui est un mouseWheelEvent, il a comme méthode getScrollAmount(), donc tu peux exécuter pour chaque "ScrollAmount" ta fonction pour les petits traitements et, une fois que tu es arrivé au bout, appeler ta fonction pour ton gros traitement.

  3. #3
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,

    Je ne pense pas qu'il y ait la notion de "fin de scroll" en java. Ca veut juste dire que tu n'as pas scrollé depuis un certain temps.

    Je dirai qu'il faut gérer un timer:
    - à chaque scroll tu le réinitialise (on va dire au pif: 1 seconde, à toi de voir)
    - lorsque tu as passé une seconde sans le réinitialiser (donc quand tu n'as plus scrollé depuis une seconde), tu fais ta fonction longue.

    Avantage: ça te force à mettre ton action longue dans un autre thread que celui de Swing, ce qui ne gèlera pas ton affichage.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut
    Merci a vous deux.

    Jidefix > Je pensait a quelque chose comme cela mais j'aurais aimer une autre façon...

    Cbonniot > mon pb c'est qu'a chaque cran de molette l'évènement mouseWheelMoved est lancé

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    Tu peux peut etre essayer de créer un attribut à ta classe que tu mettras à jour à chaque appel à mouseWheelMoved qui représentera le nombre de tour de boucles que tu devras faire dans une autre fonction et après cette boucle, lancer ton gros traitement, ca t'obligerait à utiliser les threads par contre.

    Es tu sûr qu'il ne "factorise" pas les appels à mouseWheelMoved si beaucoup de crans de molette sont réalisés en peu de temps ? Sinon, effectivement, ma méthode ne fonctionne pas mais dans ce cas, je ne vois pas à quoi sert leur méthode getScrollAmount si l'évenement est lancé a chaque cran de molette car cette fonction, si j'ai bien compris, renverrait toujours 1. Essaye de tester combien elle renvoie à chaque fois.

  6. #6
    Invité
    Invité(e)
    Par défaut
    java.​awt.​event.​MouseWheelEvent

    public int getScrollAmount()

    Returns the number of units that should be scrolled per click of mouse wheel rotation. Only valid if getScrollType returns MouseWheelEvent.WHEEL_UNIT_SCROLL
    Returns:
    number of units to scroll, or an undefined value if getScrollType returns MouseWheelEvent.WHEEL_BLOCK_SCROLL
    See Also:
    MouseWheelEvent.getScrollType
    getScrollAmount() retourne le nombre de tick par cran que l'utilisateur à configuré sur son pc dans les paramètres de la souris.

    Peut-être que cette méthode serait plus appropriée non ?


    java.​awt.​event.​MouseWheelEvent

    public int getWheelRotation()

    Returns the number of "clicks" the mouse wheel was rotated.
    Returns:

    negative values if the mouse wheel was rotated up/away from the user, and positive values if the mouse wheel was rotated down/ towards the user

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/12/2005, 21h21
  2. [BufferedInputStream] Détecter la fin du stream
    Par pmartin8 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 02/06/2005, 15h57
  3. [Servlet] Comment détecter la fin d'une session HTTP
    Par cocula dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/04/2005, 17h27
  4. [Réseau] détecter la fin de lecture dans un flux entrant
    Par al85 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 30/03/2005, 21h06
  5. [TMediaPlayer] Détecter la fin de lecture
    Par ysr1 dans le forum C++Builder
    Réponses: 1
    Dernier message: 30/09/2004, 18h03

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