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

EDT/SwingWorker Java Discussion :

MouseListener, MouseMotionListener --> MouseDragged(MouseEvent event)


Sujet :

EDT/SwingWorker Java

  1. #1
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut MouseListener, MouseMotionListener --> MouseDragged(MouseEvent event)
    Bonjour à tous,
    Je viens vous voir avec un problème un peu bête mais qui me bloque vraiment, je vous explique :
    J’essaye de développer un petit jeu tout simple, afin de comprendre l’API SWING.
    J’utilise Swing, dans mon Panel j’ai une superposition d’images, des roues codeuses pour simuler le tableau de bord d’une voiture, donc j’ai 9 images de 0..9, image0 avec l’aiguille positionnée au milieu (0 km/h) ainsi de suite l’image 9 avec la flèche positionné en (90 km/h), donc j’ai placé mes images l’une sur l’autre de tel sorte qu’au lancement de l’appli on se retrouve avec l’image0.
    Ce que je veux faire si quand je clique sur l’image 0 et je bouge la souris à gauche dans le sens des aiguilles d’une montre, donc mouseDragged(MouseEvent event); je crée un effet visuel que la vitesse augmente (je change mes images en fait) ; mon idée est de diviser l’espace en camemberts et quand je rentre dans un nouveau espace je change de photo, pour crée cet effet visuel, mais la je n’arrive pas à trouver comment faire.
    Mon deuxième problème c’est de pouvoir le faire aussi dans le sens inverse des aiguilles d’une montre, quand ma souris parte dans le sens inverse d’une aiguille d’une montre je change mes images de telle façon que ma vitesse diminue…
    Pour changer mes images pas de problème, ce qui me manque c’est l’événement, avec mouseDragged(MouseEvent event) pour l’instant j’arrive à changer mes images mais il faut que je clique à chaque fois sur la nouvelle image et bouger le souris dans n’importe quel sens, alors que mon but est de cliquer une fois et maintenir le bouton cliqué pour changer les images.

    J’espère que j’étais précis dans mes explications.
    Je vous remercie d’avance pour toute aide.
    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par blackhock Voir le message
    J’espère que j’étais précis dans mes explications.
    Trop confus, fait des images explicatives (screenshots avec flèches indiquant les directions des gestes, la définition des zones, etc. et image de ce qu'on devrait avoir en résultat et image de ce que tu obtiens) et éventuellement produit du code dans un exemple allégé qu'on puisse teste ça (et parfois ça permet même de trouver comment faire/comment corriger le problème tout seul).

    Note : quand il s'agit d'interfaces graphiques et encore plus dans des controles personnalisés et/ou avec des rendu ou des gestes customisés très particuliers dès que ça devient trop complexe il faut fournir des screens, mockup ou du code pour qu'on puisse tester car il existe mille et une facon de faire les mêmes choses.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Par défaut
    Bonjour,

    Le premier conseil que je vais faire est au niveau de l'animation. 9 images cela ne sera pas très fluide. Tu a une autre manière (mais un peu plus compliqué). Tu peux faire deux images, l'aiguille et le cadran. Lorsque tu bouge ta souris, tu fais une rotation de l'image de l'aiguille (possible avec Graphic2D) avec l'angle que fait ta souris au centre du cadran. Beaucoup plus fluide comme animation. (si tu veux plus d'information dis le moi)

    Ensuite je pense que ton problème est que ta souris quitte le cadran et continue à faire bouger l'aiguille. Pour empêcher cela, tu calcule la distance entre ta souris et le centre du cadran. S'il dépasse, tu ne fais rien ou tu peux aussi faire un retour à zéro.

    Pour le camembert, il faut que tu calcule l'angle que fait ta souris avec le centre. Et en fonction de l'angle tu met le camembert correspondant. Par exemple pour un angle entre 0 et 40 dégrée, tu vas avoir la première image. Attention car Math.arccos() donne le résultat en radian et au signe près.

    Netwak

  4. #4
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut
    Bonjour NetWak, Bonjour Bouye,
    Merci pour vos réponses et désolé pour le retard dans ma réponse,
    Alors pour répondre à NetWak, 9 images c’est vrai que c’est beaucoup mais mon appli est basé l’a dessus je suis obligé de faire comme ça, modifié mes 9 petits Label. Néant moins la solution que tu propose de faire deux images (un cadran et une aiguille) et faire une rotation de l’aiguille est très intéressante, je la réserve pour un deuxième temps je vais essayer d’explorer ça.
    Pour Bouye je te dis que la prochaine fois je vais être plus précis en insérant des images et des bouts de code dans ma question, j’aveux que je ne sais pas comment insérer des images dans les questions du forum mais je vais chercher et trouver.
    Pour l’instant j’opte pour une solution avec un calcul d’angles entre la souris et le centre de l’image.
    Encore merci pour votre aide, je vous informerez de l’état de ma progression.

Discussions similaires

  1. Evenements MouseListener / MouseMotionListener
    Par rdver dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 01/01/2014, 15h31
  2. MouseListener et MouseMotionListener
    Par stef_nancy dans le forum Débuter
    Réponses: 4
    Dernier message: 10/07/2009, 16h42
  3. Réponses: 6
    Dernier message: 10/09/2007, 23h55
  4. Réponses: 4
    Dernier message: 21/05/2004, 10h13
  5. Accès à une case d'un DBGrid dans l'event OnKeyDown
    Par fba dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/03/2004, 13h48

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