KeyListener

qhhu Messages postés 66 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 octobre 2009 - 10 avril 2006 à 09:51
qhhu Messages postés 66 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 octobre 2009 - 10 avril 2006 à 10:28
Bonjour a tous
J'ai un problème concernant KeyListener...
Je voudrais détecter les touches haut,bas,droite et gauche, mais je n'y arrive pas.
J'ai essayé ceci:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class uptest extends JFrame implements KeyListener{
JPanel s = new JPanel();
public uptest(){
super("test");
setSize(100,100);
setLocation(100,0);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
s.setFocusable(true);
s.requestFocus();
s.addKeyListener(this);
add(s);
setVisible(true);
}
public void keyTyped(KeyEvent e){
int so = e.getKeyCode();
if(so==KeyEvent.VK_UP){
System.out.println("UP");
}
else if(so==KeyEvent.VK_LEFT) {
System.out.println("LEFT");
}
else if(so==KeyEvent.VK_DOWN){
System.out.println("DOWN");
}
else if(so==KeyEvent.VK_RIGHT){
System.out.println("RIGHT");
}
}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){}
public static void main(String[] arguments){
uptest h = new uptest();
}
}

Ca ne marche pas...

Pouriez vous m'aider svp???

Merci d'avance

2 réponses

bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
10 avril 2006 à 10:01
tu semble donner le focus a ton panel, mais essaye de faire en sorte qu'il l'ait un peu plus tard :
SwingUtilities.invokeLater( new Runnable(){ public void run(){ s.requestFocus(true);}} );

(c'est dla bidouille mais tant pis)

sinon essaye de mettre ton code dans keyPressed plutot que keyTyped
0
qhhu Messages postés 66 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 octobre 2009
10 avril 2006 à 10:28
Ok merci bcp ca marche c'est super !
0
Rejoignez-nous