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

 Java Discussion :

problème avec mouseDragged


Sujet :

Java

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut problème avec mouseDragged
    Bonjour,

    Voilà, dans une JPanel j'ai des items qui bougent, et je dois gérer le événements de la souris sur ces items.

    J'ai une classe ItemMover qui implémente MouseAdapter, je réécris les méthodes mousePressed, mouseReleased et mouseDragged. Les deux premières méthodes marchent, les événements sont détectés sauf que pour mouseDragged, (qui est censé bouger les items du Panel) l'événement n'est pas détecté. Lorsque je laisse appuyé le bouton gauche de la souris, l'événement ne s'enclenche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    public class ItemMover extends MouseAdapter {
     
    	private Item item;
            private ArrayList liste;
     
    	public ItemMover(ArrayListe liste)
    	{
    		this.item = null;
                    this.liste = liste;
    	}
     
    // Vérifie si la position "cliquée" équivaut à un élément de la liste
    	@Override
    	public void mousePressed(MouseEvent e) {
    		super.mousePressed(e);
    		for(Item a : liste)
    		{
    			if(a.rectangle().contains(e.getPoint()) && a!=null)
    			{
    				this.item = a;
    			}
    		}
                    // Efface l'item si on double-clique dessus
    		if(this.item != null && this.item.rectangle().contains(e.getPoint()) && e.getClickCount() == 2)
    		{
    			liste.remove(this.item);
    		}
    	}
     
     
    	// Change de position l'item choisit, si item différent de null
    	@Override
    	public void mouseDragged(MouseEvent e) {
    		super.mouseDragged(e);
    		System.out.println("méthode mouseDragged appelée!!"); // Ce message ne s'affiche pas...
    		if(item != null){
    			this.item.setPosition(e.getPoint());
    		}
    	}
     
     
    	// Quand la souris est relâchée l'item redevient null
    	@Override
    	public void mouseReleased(MouseEvent e) {
    		super.mouseReleased(e);
    		this.item = null;
    	}
     
    }
    (Pour information, ItemMover est ajouté dans le constructeur du Panel.)

    Avez-vous une quelconque idée sur la raison (peut-être toute bête) de ce problème?

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Salut Mikel, c'est Mathieu, ton camarade de cours ^^
    Bon alors j'ai eu le même problème que toi et pour le résoudre j'ai fait comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public Aquarium(){   
     
    		t = new Time(this);
    		this.setSize(800,800);
    		this.setBackground(Color.cyan);
    		this.fill();
    		t.start();
    		this.addMouseListener(im);
    		this.addMouseMotionListener(im);//c'est là que ça bouge!
    	}
    dans le constructeur d'aquarium, et ça marche.
    Bon courage 
    PS mon mouseDragged est le même que le tiens.

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup, mathieu. Je vais essayer ça tout de suite.

  4. #4
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    OK ça marche!! Et encore merci...

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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