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 :

rotation d'objet et mouseLsitener


Sujet :

EDT/SwingWorker Java

  1. #1
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut rotation d'objet et mouseLsitener
    Bonjour, j'ai une question concernant un problème particulier, pour un connaisseur de la librairie swing et des listener.

    La problématique est résumée dans le fichier pdf joint, car de petites images sont parfois plus parlantes qu'un grand texte.

    Merci à tous ceux qui passeront un peu de temps à comprendre le dysfonctionnement et peut-être, à me donner une piste pour le résoudre...

    listener rotation d'objet.pdf

  2. #2
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut réponse... de moi-même
    bonsoir à ceux qui, peut-être ont suivi ma question.

    Après pas mal de tentatives et d'essais divers, j'ai enfin compris que les translations ou rotations ajoutés à un contexte graphique, n'impactent que le "coup de peinture" en pixels sur l'écran, mais pas du tout la position des objets définis.

    En fait, quand je fais pivoter le contexte graphique, mon objet est toujours au même endroit sur son support, et ne pivote pas du tout! C'est uniquement sa représentation qui pivote avec le contenu du contexte graphique.

    Dans le cas de mon objet composé d'un JComponent "support", et d'un JComponenent "Enfant cliquable", j'ai résolu ainsi :

    la partie sans incidence, uniquement "représentative" est géré par un un contexte graphique nouveau, g3, copie du contexte graphique g2, qui assure la rotation à 90°.
    J'utilise g3 pour faire la rotation, dessiner la partie qui a pivoté mais ne contient pas de partie cliquable, puis je libère les ressources avec g3.dispose();
    Ensuite, je récupère le contexte g2 (qui n'a pas pivoté), et sur ce dernier je recalcule la position et la taille de la partie que je veux "cliquable", afin de donner l'illusion qu'elle a pivoté avec le reste, mais en fait, elles redimensionnée et redessinée à son nouvel emplacement.

    Tout se comporte comme si tout l'objet avait pivoté, avec sa partie visuelle sans espace cliquable qui a vraiment pivoté, et son nouvel objet cliquable qui n'a pas pivoté, mais qui, recalculé et re-dimensionné, en donne l'illusion, et conserve son utilité car cliquable...

    En gros , c'est ça l'idée, et ça fonctionne correctement....

    Je ne sais pas si c 'est une méthode correcte mais l'idée est là..

    Bonne soirée à tous...

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    J'ai failli déplacer dans graphisme et puis je me suis ravise car ca avait plus sa place dans la gestion des événements.

    Comme tu l'as découverts toi-même, les transformations que tu appliques n'ont d'effet que sur l'affichage/la vue/la partie graphique. La gestion des événement n'est pas impactée.
    Si tu veux que cela soit le cas, tu dois le faire toi-même a la main. En Java2D, cela va impliquer pour toi de conserver un objet Transform qui va contenir l'historique des transformations apportées a ton objet graphique. Il te faudra appliquer cette transformation aux coordonnées de la souris pour les convertir dans le bon repère.

    Petite note: pour rebasculer dans le repère de Swing il te faudra appliquer la transformation inverse. Or certaines transformations peuvent ne pas être inversibles.
    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

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

Discussions similaires

  1. Rotation d'objet autour d'un point
    Par epok33 dans le forum Tkinter
    Réponses: 11
    Dernier message: 12/12/2013, 02h14
  2. [Rotations] Un objet sur une planete, comment faire ?
    Par supergrey dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 09/03/2008, 11h21
  3. [Newton] probleme d'angle de rotation des objet
    Par Syl_20 dans le forum Newton
    Réponses: 13
    Dernier message: 27/08/2007, 08h41
  4. Rotation d'objet
    Par mtech dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 19/01/2006, 06h24
  5. algo : rotation d'objet 3d
    Par numeror dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/08/2002, 22h58

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