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 :

Empêcher la souris de quitter la fenetre java


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Par défaut Empêcher la souris de quitter la fenetre java
    Bonjour à tous,

    Je débute en interface graphique et je suis face à une interrogation :
    Dans mon application, je fais du drag and drop, et je souhaiterais que quand on presse la souris et qu'on commence à déplacer un item, on ne puisse pas quitter une certaine zone de ma fenêtre (en l'occurrence un JPanel) la souris.

    Avez vous une idée de comment faire cela ?

    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pas possible, a vous de gérer les cas où elle sort.

  3. #3
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Par défaut
    J'ai vu que grâce à Robot on pouvait définir des actions pour la souris :

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    La classe à connaître pour contrôler la souris à partir d'un programme Java est : java.awt.Robot (classe qui permet aussi accessoirement de simuler les actions de votre clavier et de récupérer de contenu visuel de votre écran sous forme d'une image)
     
    La classe Robot permet donc de déplacer le curseur de votre souris et de simuler des clics, de la manière suivante :
     
    Robot robot = new Robot();
    robot.mouseMove(35,35); // positionnement du curseur sur le pixel 35,35 de votre écran
    robot.mousePress(InputEvent.BUTTON1_MASK); // pression du bouton gauche
    robot.mouseRelease(InputEvent.BUTTON1_MASK); // relâchement du bouton gauche

    Donc on peut en surveillant les mouvements de la souris la renvoyer dans la zone en cas de dépassement, mais je trouve cette solution un peu "bourrine" ...

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mais je trouve cette solution un peu "bourrine"
    ça dépend des gout .

    Dans tous les cas ce n'est vraiment pas "user-friendly" de bloquer les mouvements de souris de l'utilisateur .
    Il faut trouver une alternative mieux adaptée je pense.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Sans compter que tu v agalérer sec quand une fenetre sera supperposée à la tienne. La souris va "sortir de la zone" (mouseexited) parce que passe au dessus de l'autre fenêtre, mais restera dans la cadre de ton composant. Tu va la repositionner dans le cadre (Robot) mais comme ça restera là où se trouve l'autre fenêtre, elle ne déclenchera pas de mouseentered, et fini le tracking de la souris.

    Bref, c'est moche et bancal.

    Quel est la raison de ce requis?

  6. #6
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Par défaut
    Je code un logiciel de modélisation uml et c'est pour le déplacement des blocs, donc la fenetre à la focus ya pas de soucis yaura pas de fenetres superposées.

    Si je résume, pour déplacer un bloc, je presse le bouton de la souris, quand la souris se déplace, le bloc aussi, et quand on relâche le bouton le bloc n'est plus déplacé. Le souci c'est que la souris peut quitter la zone de dessin et pas le bloc, ce qui fait qu'on a un décalage qui apparait..

Discussions similaires

  1. empêcher la souris de sortir d'une fenetre tkinter
    Par cobe91 dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 12/09/2013, 13h08
  2. methode pour quitter une fenetre
    Par Asmod_D dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 02/05/2007, 15h30
  3. fermeture fenetre JAVA
    Par mmarcoboss dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 29/03/2007, 14h08
  4. [Swing]Style de Fenetre Java
    Par Voxdei dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 14/07/2004, 22h48
  5. Réponses: 9
    Dernier message: 11/03/2003, 12h22

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