Probleme de listener et evenement clavier

Résolu
mimilavitrine Messages postés 54 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 15 octobre 2006 - 21 juin 2005 à 15:09
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

3 réponses

JavaNerd Messages postés 14 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 22 juin 2005
21 juin 2005 à 16:35
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
3
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
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
3
mimilavitrine Messages postés 54 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 15 octobre 2006
21 juin 2005 à 17:47
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 ?
0
Rejoignez-nous