keylistener

keylistener - Java - Programmation

Marsh Posté le 03-04-2003 à 17:44:16    

bon j'ai fait une classe d'ecoute d'entrée clavier. mais c pas au point. j'ai plusiuer problem. le 1er c ke java veux pas de mes E.VK_UP & co ds le switch. le deuxieme point c ke qd j'enleve ça marche (enfin ça compil) mais à l'execution j'ai un nulpointer exception.
 
voila le code.
 
 

Code :
  1. import java.awt.event.*;
  2. public class AllKeyListeners implements KeyListener{
  3.     private int key;
  4.     private RoomLabel rl;
  5.     AllKeyListeners(RoomLabel rl){
  6. this.rl = rl;
  7.     }
  8.     public void keyPressed(KeyEvent e){
  9. key = e.getKeyCode();
  10. switch(key){
  11.     case e.VK_UP : rl.getPjLabel().moveToTop();
  12.     break;
  13. case e.VK_DOWN :
  14.     break;
  15. case e.VK_RIGHT :
  16.     break;
  17.         case e.VK_LEFT :
  18.     break;
  19. }
  20.     }
  21.     public void keyReleased(KeyEvent e){
  22.     }
  23.     public void keyTyped(KeyEvent e){
  24.     }
  25. }


 
c koi mon problem svp?

Reply

Marsh Posté le 03-04-2003 à 17:44:16   

Reply

Marsh Posté le 03-04-2003 à 17:47:25    

bin le nullpointer se fait où? :heink:  
 
key n'a pas besoin d'etre un attribut de ta classe :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 03-04-2003 à 17:51:44    

ca peut venir qeu de là : rl.getPjLabel().moveToTop();  
 
donc, soit rl est null, soit rl.getPjLabel() retourne null


Message édité par benou le 03-04-2003 à 17:55:01
Reply

Marsh Posté le 03-04-2003 à 18:34:51    

ça c le null pointer:
 

Code :
  1. java.lang.NullPointerException
  2.         at AllKeyListeners.keyPressed(AllKeyListeners.java:18)
  3.         at java.awt.Component.processKeyEvent(Component.java:5051)
  4.         at java.awt.Component.processEvent(Component.java:4902)
  5.         at java.awt.Container.processEvent(Container.java:1566)
  6.         at java.awt.Window.processEvent(Window.java:1074)
  7.         at java.awt.Component.dispatchEventImpl(Component.java:3598)
  8.         at java.awt.Container.dispatchEventImpl(Container.java:1623)
  9.         at java.awt.Window.dispatchEventImpl(Window.java:1585)
  10.         at java.awt.Component.dispatchEvent(Component.java:3439)
  11.         at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja
  12. va:1688)


et c vrai ke key n'as pas beoin d'etre un attribut de classe.
 
je vais voir pour ce ke tu m'ecris benou.
 
par contre pourkoi java il veux pas de mon e.VK_UP, ds le switch?

Reply

Marsh Posté le 03-04-2003 à 18:38:33    

je comprend pas : tu dit que ca compile pas quand tu les mets, mais là, tu files une exception d'execution => c'est bien que t'es arrivé à le compiler non ?

Reply

Marsh Posté le 03-04-2003 à 19:21:03    

benou a écrit :

je comprend pas : tu dit que ca compile pas quand tu les mets, mais là, tu files une exception d'execution => c'est bien que t'es arrivé à le compiler non ?


ouai mais j'ai feinter, j'ai essayer sans le swicth pour voir
ce ki ce passait avec les e.VK_UP. dc j'ai pus compilé, mais seulement en virant le switch. voila

Reply

Marsh Posté le 03-04-2003 à 19:36:17    

T'aurais donné le message d'erreur du compilo, je t'aurais répondu tout de suite... Tu m'as obligé à compile ca de mon côté :/
 
il faut que tu passe par le nom de classe et pas la variable JeyEvent :  
 

Code :
  1. switch(key){
  2.       case KeyEvent.VK_UP :
  3.  break;
  4.       case KeyEvent.VK_DOWN : 
  5.  break;


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-04-2003 à 19:58:15    

merci c ça. j'ai plus k'a resoudre mon problem de null pointer.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed