Utilisation MouseListener

Résolu
bobator Messages postés 5 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 10 avril 2007 - 10 avril 2007 à 20:21
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 11 avril 2007 à 06:56
Bonjour à tous.
Nous continuons à créer notre petit jeu. Nous avons afficher notre map (zelda.gif) dans la JFrame, nous avons crée des droites pour avoir des rectangles qui forment les cases du jeu, puis nous avons mis un petit personnage animé (bibi.gif)
Maintenant nous aimerions faire déplacer ce personnage en cliquant sur les cases qui lui sont voisines. Nous avons vu dans un tutoriel qu'on pouvait se servir de MouseListener mais nous avons du mal à l'appliquer concrétement
Nous serions très heureux si vous pouviez nous donnez des pistes ou si vous avez vraiment le temps,l'appliquez à notre problème
Merci à vous.

import java.awt.*;
import javax.swing.*;

public class ecran extends JFrame
{
     public void paint(Graphics g)
    {
        Image fond=null;
            Toolkit kit = Toolkit.getDefaultToolkit();
           fond=kit.getImage("zelda.gif");

        g.drawImage(fond,0,0,1100,900,this);

        g.setColor(Color.RED);
        g.drawLine(0, 0, 0, 900);
        g.drawLine(110, 0, 110, 900);
        g.drawLine(220, 0, 220, 900);
        g.drawLine(330, 0, 330, 900);
        g.drawLine(440, 0, 440, 900);
        g.drawLine(550, 0, 550, 900);
        g.drawLine(660, 0, 660, 900);
        g.drawLine(770, 0, 770, 900);
        g.drawLine(880, 0, 880, 900);
        g.drawLine(990, 0, 990, 900);
        g.drawLine(1100, 0, 1100, 900);

        g.drawLine(0, 90, 1100, 90);
        g.drawLine(0, 180, 1100, 180);
        g.drawLine(0, 270, 1100, 270);
        g.drawLine(0, 360, 1100, 360);
        g.drawLine(0, 450, 1100, 450);
        g.drawLine(0, 540, 1100, 540);
        g.drawLine(0, 630, 1100, 630);
        g.drawLine(0, 720, 1100, 720);
        g.drawLine(0, 810, 1100, 810);
        g.drawLine(0, 900, 1100, 900);

        Toolkit kit2 = Toolkit.getDefaultToolkit();
           fond=kit.getImage("bibi.gif");
        g.drawImage(fond,110,360,110,90,this);

    }
     public ecran()
    {
        this.setTitle("ma fenetre");
        this.setSize(new Dimension(1100,900));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String args[])
    {
        new ecran().setVisible(true);    
    }
}

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 avril 2007 à 06:56
Je te conseille plutôt de gérer le tracer dans le PaintComponents qui est fait pour cà : dans le mouseClicked tu enregistre la future position de ton image, et tu fait un updateUI de ta frame, ce qu idéclenchera le raffraichissement.

Pourquoi ? Pour séparer l'affichage du traîtement des déplacements, car tu aura sûrement à gérer le déplacement à plusieurs endroits de ton prog.
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 avril 2007 à 20:29
bah pose nous des questions car là dans ton code, je ne vois nulle part un mouseListener...
0
bobator Messages postés 5 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 10 avril 2007
10 avril 2007 à 20:39
C'est ca notre probleme, nous ne savons pas nous en servir donc on aimerait bien savoir comment l'utiliser dans notre code.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 avril 2007 à 21:26
ben c'est pas compliqué, mais tout dépend ce que tu veux en faire !

Exemple :
public class ecran extends JFrame implements MouseListener {
public ecran()
    {
        this.setTitle("ma fenetre");
        this.setSize(new Dimension(1100,900));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       addMouseListener(this);
    }

    public void mouseClicked(MouseEvent arg0) {
              System.out.println("CLICK");
        }

        public void mouseEntered(MouseEvent arg0) {}

        public void mouseExited(MouseEvent arg0) {}

        public void mousePressed(MouseEvent arg0) {
                         System.out.println("PRESSED");
        }

        public void mouseReleased(MouseEvent arg0) {
                          System.out.println("RELEASED");
        }
       
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bobator Messages postés 5 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 10 avril 2007
10 avril 2007 à 22:00
Donc si on comprend bien pour pouvoir deplacer le personnage en cliquant sur une des cases du jeu on doit utiliser ceci :

public void mouseClicked(MouseEvent arg0)
{
              Par contre la difficulté vient de ce qu'il faut marquer ici pour bien afficher le personnage.Peut on faire ceci
                Toolkit kit2 = Toolkit.getDefaultToolkit();
                  fond=kit.getImage("bibi.gif");
                   g.drawImage(fond,x,y,110,90,this)
             (x et y representant les coordonnées du clic effectué)
}
0
Rejoignez-nous