Probleme de listener et evenement clavier [Résolu]

Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
- - Dernière réponse : JavaNerd
Messages postés
14
Date d'inscription
mardi 14 octobre 2003
Statut
Membre
Dernière intervention
22 juin 2005
- 22 juin 2005 à 01:49
Bonjour a tous,



JE n'arrive pas a trouvé pourquoi ma gestion des evenements clavier ne marche pas

je vais vous montrer mon code :



public class Jeux extends JFrame {



//---------------------------------------------

//

// Déclaration des variables de la classe

//

//---------------------------------------------

public int Hauteur 600, Largeur 300, X = 150, Y = 100;

public Scene scene; // la scene va créer la zone de jeux

public BriqueJeux brique, brique2; // brique de jeux peut etre etre déplacer

public Timer timer; // permet de gerer le jeux et la descente des briques

public ImageIcon [][] tab; // tableau de jeux

public boolean bool;

private static int temp = 1000; // temp pour le timer

public static JFrame fenetre ;







//---------------------------------------------

//

// Déclaration des constructeurs de la classe

//

//---------------------------------------------

public Jeux () // constructeur par defaut

{

// initialisation des données de la classe

scene = new Scene ();

tab = scene.getTjeux(); // recupération du tableau de jeux

//initialisation d'un tableau de type bloc d'image

brique = new BriqueJeux ();

tab[brique.getPosimg1().getX()][brique.getPosimg1().getY()] = brique.getImage1();

tab[brique.getPosimg2().getX()][brique.getPosimg2().getY()] = brique.getImage2();



/*boolean b;

scene.rotationbrique(brique);

tab[2][2] = brique.getImage1();

scene.deplacementbriqueBas(brique);*/





fenetre = new JFrame ("Game");

fenetre.setBounds(X,Y , 300 , 600);

fenetre.setLayout (new GridLayout (12, 6));



//j.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);

int y ;

for (int i = 0 ; i < 12; i++)

{

for (y = 0 ; y < 6; y++)

{



//j.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);



fenetre.add(new JLabel (tab[i][y]));

}



}

//fenetre.setContentPane(j);

pack();

fenetre.setVisible(true);

this.addKeyListener(new ChoixUtilisateur ());



}



public class ChoixUtilisateur extends KeyAdapter

{



public void keyPressed(KeyEvent e)

{ //keyPressed : Evenement a gerer

int key = e.getKeyCode();

switch (key)

{

case KeyEvent.VK_LEFT :



scene.deplacementbriqueGauche(brique);

break;



case KeyEvent.VK_RIGHT :



scene.deplacementbriqueDroite(brique);

break;



case KeyEvent.VK_UP :

brique.inversion();

break;



case KeyEvent.VK_DOWN :


scene.rotationbrique(brique);

break;



}

}



}



public static void main(String[] args)

{

// création d'un nouveaux jeux

Jeux jeux = new Jeux ();

//jeux.PlayGame();







}

}



Normalement j'ecoute bien le clavier et avec la classe ChoixUtilisateur
je gere le deplacement de la brique; les methodes de deplacement sont
implémenter et elle fonctionne mais je n'arrive a gerer les evenement
avec les touches du clavier

Est ce que quelqu'unpeut m'aider s'il vous plait

merci d'avance
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
14
Date d'inscription
mardi 14 octobre 2003
Statut
Membre
Dernière intervention
22 juin 2005
3
Merci
Bonjour







J'ai peut être trouvé ce qu'il ne va pas.

En fait je vois dans ton source que ta classe Choix utilisateur dérive
de la classe KeyAdapter ce n'est pas comme celà que l'on gère le clavier

En effet il faut que cette classe implémente l'interface KeyListener comme ci-dessous:



public class ChoixUtilisateur implements KeyListener{



public void keyPressed(KeyEvernt e){

etc...

}



}





Thierry

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JavaNerd
Messages postés
14
Date d'inscription
mardi 14 octobre 2003
Statut
Membre
Dernière intervention
22 juin 2005
3
Merci
Les signatures des méthodes doivent être obligatoirement présentes
dans ta classe car on implémentes une interface en l'occurence KeyListener,
tu écris le code de gestion uniquement pour la méthode dont tu as
besoins pour ton programme et tu laisses les autres vide.



Bon courage

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JavaNerd
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
0
Merci
MErci beaucoup en tout ca marche pas encore car il me demande
d'implementer les autre evemenent typed et released mais merci beaucoup
en tous cas

Juste comme ca si je ne veux pas gerer les evenement precédent enfin
qu'il ne se passe rien dedant qu'est ce que je doit mettre ?
Commenter la réponse de mimilavitrine