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

Composants Java Discussion :

[JButton] Mouvements souris + MousePressed


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut [JButton] Mouvements souris + MousePressed
    bonjour


    je voudrais savoir si c'est possible de detecter et de catcher (avec un listener du genre Mouse) les mouvements de la souris quand l'utilisateur RESTE appuyé sur un bouton (par exemple le gauche).
    sinon comment faire ?

    j'ai deja tester des choses :
    - avec MousePressed, on ne peut pas se servir de MouseMoved pour obtenir les mouvements.
    - MouseDragged ne convient pas ... il faut que je garde des evenements puisque l'utilisateur doit pourvoir deplacer l'image dans le JEditorPane.
    - MouseReleased me donne bien la position de fin de deplacement... mais pas le deplacement lui-meme !

    ceci s'incrit dans le cadre d'un editeur HTML WYSIWYG et d'un redimensionnement d'image WYSIWYG lui-aussi.

    je vous remercie.
    si je ne suis pas assez clair, n'hesitez pas à me demander des rensignements suplementaires

    Bonne journée à vous tous !

  2. #2
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Utilise mousePressed, mouseDragged et mouseReleased.

    Dans mousePressed tu sauvegarde le point de depart.
    Dans mouseDragged tu effectue ta translation.
    Dans mouseReleased tu arrete tout.

    Pour effectuer ta translation :
    Tu fais un thread avec point de depart, nombre d'etape (de repaint), point d'arrive. Tant que ton thread tourne tu ne reeffectue pas de translation. A la fin de ton thread tu peux recommencer ta translation (mouseDragged).

    Un petit exemple : l'hypertree. (HTAction pour mouseListener, HTDraw pour la translation si tu veux avoir une idée du code que tu dois faire)
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut parfait :)
    d'accord je vais regarder ca

    merci beaucoup !

    le coup du Thread est une vraiment bonne idée

    ++

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut mouais
    jviens de regarder. ce n'est pas tres facile quand meme ....

    n'y aurait il pas un autre moyen ??? tout en gardant le drag'n drop actif ?

    merci quand meme !

  5. #5
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Tout depend de ce que tu veux faire...
    C'est clair que je me suis un peu emballé.

    Si tu veux juste redimensionner une image "statiquement" (point de depart, point d'arrivé), il te suffit juste de recuperer les coords de la souris pour mousePressed (depart) et mouseReleased (arrivé). Et apres tu redimensionne.

    Si tu veux qu'il y est une anim ta 2 choix :
    Tu fais juste le dessin du rectangle pour la future taille de ton image, dans ce cas la t'es obligé de faire des repaint rapide pour que l'utilisateur voit le rectangle se redimensionner (thread ou timer qui appelle repaint).
    Soit tu vas jusqu'au bout et au lieu de redimensionner ton rectangle tu redimensionne l'image elle meme, l'inconvenient c'est que c'est plus lourd, ca va te pomper un peu plus de memoire.
    De toute facon si tu ve un redimensionnement animé faut que tu passe par un thread ou timer pour gerer la frequence de rafraichissement.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut ouaip
    je suis d'accord avec toi.
    le timer me parait une meilleur idée : plus simple à mettre en place a premiere vue etc ...

    par contre, ce qui me pose un reel probleme ce sont les "interferences" entre le drag and drop et le mousePressed.

    je m'explique :
    quand on reste appuyer sur la souris et qu'on la bouge, on peut recuperer les mouvements avec mouseDragged.
    sur mon image, j'ai un tour noir, avec un petit carré en bas (GrowBox).

    ce que je veux obtenir est simple :
    - quand on reste clicker sur l'image et que l'on bouge la souris, il doit se passer un drag and drop tout bete (deja gerer par le JEditorPane en mode Editable)
    - quand on reste clicker sur la GrowBox, je voudrais redimmensionner l'image selon les mouvements de la souris, en utilisant la methode mouseDragged.

    donc ce que je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    si (positionSouris DANS GrowBox) {
        editeur.desactiverDraganddrop();
        redim = true
    }
    sinon {
    editeur.activerDraganddrop();
    redim = false;
    }
    (en pseudo code)

    le truc qui est bizar, c'est que desactiver le dragAndDrop ne se fait pas directement. donc meme si je reste clicker dans ma GrowBox, je me retrouve avec un DragAndDrop dès que je bouge !

    c'est embettant ...
    RAH je ne sais pas comment faire ... !

    meme avec un timer, le meme probleme va se posé je pense.

    si qqun a deja essayer et a une idée

    [EDIT] : a propos du type de redimensionnement, c'est du DIRECT, cad que l'image change de taille selon les mouvements de la souris

  7. #7
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    si (positionSouris DANS GrowBox) { 
        editeur.desactiverDraganddrop(); 
        redim = true 
    } 
    sinon { 
    editeur.activerDraganddrop(); 
    redim = false; 
    }
    Faut le faire quand tu survole tes objets, avec mouseMoved comme ca si y click c'est prevu. Faut pas changer valider dragAndDrop au moment ou y click.
    Quand y rentre dans un zone GrowBox tu desactive, quand il en sort tu reactive, comme au moment ou il click c tout bon
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 15
    Points : 12
    Points
    12
    Par défaut mmmh !
    CA MARCHE !

    alors soit je l'avais fait avant (oui ca fait deja 1 mois que je suis sur l'editeur et le probleme de redimensionner une image en WYSIWYG) ou alors je suis trop bete (c'est tres possible aussi !)

    EN TOUT CAS : UN GRAND MERCI ))

    bonne continuation et merci a tous ( surtout a toi narfiggo )

    ++

  9. #9
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    De nada.

    Pense au tag résolu.

    Merci.
    +
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

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

Discussions similaires

  1. Grosse consommation CPU sur mouvement souris
    Par distil dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 11/03/2010, 23h55
  2. problème mouvement souris
    Par bbmery dans le forum Périphériques
    Réponses: 1
    Dernier message: 29/04/2009, 22h47
  3. GTK + mouvement souris
    Par kenshi240683 dans le forum GTK+ avec C & C++
    Réponses: 0
    Dernier message: 28/04/2008, 10h30
  4. Détecter mouvement souris sur shape
    Par jacklem dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/07/2007, 07h37
  5. Enregistrer Mouvement souris
    Par guano dans le forum Flash
    Réponses: 3
    Dernier message: 14/12/2006, 20h22

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