Méthode getKeyCode qui n'est pas prise en compte
Résolu
Padenom
-
Padenom -
Padenom -
Bonjour.
Je débute en java et mon projet actuel est de réaliser un petit casse-briques pour apprendre la programmation événementielle. Actuellement, je bloque sur l'interface clavier.
Je souhaite qu'une variable int correspondant à la position horizontale de la raquette varie lorsque le joueur appuie sur les touches fléchées gauche et droite. J'ai donc choisi d'utiliser l'interface KeyListener. Dans la méthode KeyPressed(), je fais un test pour savoir quelle touche a été appuyée... Et c'est là que ça coince.
La fenêtre ne tient pas compte de l'interface KeyListener. J'ai fait des tests et il semble que la fenêtre lise une première fois la position de la raquette et ne la remette plus à jour ensuite. Mais je ne sais pas d'où vient le problème, d'autant que mon code compile.
Pourriez-vous m'expliquer ce qui ne va pas dans mon code? Merci d'avance!
----------------------------------------------------------------------------------------------------------------------------------
Mon code:
Je débute en java et mon projet actuel est de réaliser un petit casse-briques pour apprendre la programmation événementielle. Actuellement, je bloque sur l'interface clavier.
Je souhaite qu'une variable int correspondant à la position horizontale de la raquette varie lorsque le joueur appuie sur les touches fléchées gauche et droite. J'ai donc choisi d'utiliser l'interface KeyListener. Dans la méthode KeyPressed(), je fais un test pour savoir quelle touche a été appuyée... Et c'est là que ça coince.
La fenêtre ne tient pas compte de l'interface KeyListener. J'ai fait des tests et il semble que la fenêtre lise une première fois la position de la raquette et ne la remette plus à jour ensuite. Mais je ne sais pas d'où vient le problème, d'autant que mon code compile.
Pourriez-vous m'expliquer ce qui ne va pas dans mon code? Merci d'avance!
----------------------------------------------------------------------------------------------------------------------------------
Mon code:
import javax.swing.JLabel; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; class Raquette implements KeyListener{ //classe "raquette" public int pos = 200; //position sur x de la raquette public boolean gauche = false; public boolean droite = false; public void keyPressed(KeyEvent e){ if(e.getKeyCode() == 37){ gauche = true; droite = false; }else if(e.getKeyCode() == 39){ droite = true; gauche = false; }else{ gauche = false; droite = false; } } public void keyTyped(KeyEvent e){} //méthode inutilisée public void keyReleased(KeyEvent e){ gauche = false; droite = false; } } class Pan extends JPanel{ Raquette raq = new Raquette(); //instanciation de la raquette } class Fenetre extends JFrame{ Pan pan = new Pan(); JLabel label = new JLabel("position=" + pan.raq.pos); //affichage à des fins de test Fenetre(){ this.setTitle("Casse-briques"); this.setSize(400,400); this.setLocationRelativeTo(null); this.setVisible(true); pan.add(label); this.setContentPane(pan); deplacement(); } private void deplacement(){ //méthode en boucle infinie while(true){ if(pan.raq.gauche == true){ pan.raq.pos--; sleep(1000); }else if(pan.raq.droite == true){ pan.raq.pos++; sleep(1000); }else{ sleep(1000); } label.setText("nouvelle position=" + pan.raq.pos); } } } void main(){ Fenetre fen = new Fenetre(); }
A voir également:
- Méthode getKeyCode qui n'est pas prise en compte
- Comment savoir qui regarde mon compte facebook - Guide
- Créer un compte google - Guide
- Installer windows 10 sans compte microsoft - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide