Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1641 connectés 

  FORUM HardWare.fr
  Programmation

  [java] création d'un KeyListener ... helpppp..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java] création d'un KeyListener ... helpppp..

n°45312
Kouye
Posté le 09-07-2001 à 11:02:19  profilanswer
 

Salut !
bon je suis pas doué en java .. j'ai du mal !!
 
voila mon pb : j'a n'arrive pas a creer un KeyListener..
j'ai adapté u nexemple dans un bouquin ..  
mais dans mon source :
 
class Projet extends JFrame implements KeyListener{
voila l'erreur :
Projet should be declared abstract; it does not define keyTyped(java.awt.event.KeyEvent) in Projet
 
je capte pas pkoi il ne veu pas de mon implement Keylistener.
 
merci d'essayer de m'aider :)

mood
Publicité
Posté le 09-07-2001 à 11:02:19  profilanswer
 

n°45316
petoulachi
A fortiori, brigadier chef
Posté le 09-07-2001 à 11:17:58  profilanswer
 

c pas tout a fais comme ça que ça marche.
Il faut que tu crees ta classe du listener. Tu peux le faire dans un fichier separé (conseillé si tu penses que ton listener va etre gros), ou au sein de la classe meme (inner Class).
bref la on va dire que tu le fais en inner Class.
 
Il faut que tu fasses :

Code :
  1. public class Controleur implements KeyListener
  2. {
  3.  public void keyPressed (KeyEvent e)
  4.  {
  5.   //code pour un key pressed
  6.  }
  7.                 public void keyTyped (KeyEvent e)
  8.  {
  9.   //code pour un key typed  }
  10.                 public void keyReleased (KeyEvent e)
  11.  {
  12.   //code pour un key relesased  }
  13. }


 
ça c pour la innner classe.
Puis ensuite, il faut que tu declare ton listener au composant auquel tu souhaites effectuer un controle.
 
en supposant que ce soit un JTextField :

Code :
  1. JTextField text = new JTextField ();
  2. text.addKeyListener(new Controleur());


 
Mais bon, au lieu de faire avec l'interface KeyListener, tu peux le faire avec KeyAdapter (par contre ce n'est plus une interface, il faut donc etendre au lieu d'implementer. Le seul avantage, c que t pas obligé de redefinir toutes les methodes, tu ne fas que ce qui t'interesses vraiment.
 
voila ! :sol:

n°45329
Kouye
Posté le 09-07-2001 à 12:11:34  profilanswer
 

ok merci a toi petoulachi :)
je vais essayer ainsi alors :)
 
a+

n°45767
Bandenabos
§;o)
Posté le 10-07-2001 à 17:42:13  profilanswer
 

En fait le fait que ta classe implémente l'interface Tartempion, ça indique qu'elle possède un ensemble de méthodes définies dans cette interface.

n°45808
gfive
Posté le 10-07-2001 à 23:25:32  profilanswer
 

Petoulachi n'a que partiellement raison : tu peux tout à fait faire implémenter KeyListener à la classe qui lance les évènements :
 
public class MyTextfield extends TextField implements KeyListener {
 
public MyTextfiled(String text) {
super(text);
addKeyListener(this);
}
 
...
}
 
et ensuite, tu écris les méthodes déclarées dans l'interface.
 
En gros, les interface permettent de passer outre (en partie seulement) l'impossibilité de faire de l'héritage mulitple. Dans le cas présent, la class MyTextfield hérite de TextField, et vérifie aussi le prototype de l'interface KeyListener : cet objet est reconnu en tant que KeyListener, et à ce titre, peut être appellé comme tel. Si tu fais :
 
MyTextfield mt = new MyTextfield("toto" );
et ben (mt instanceof MyTextField) renverra true...
Bon, je sais, c'est pas forcément très clair, mais les interfacs, c'est vachement utile en Java (et en POO en général)

n°45842
petoulachi
A fortiori, brigadier chef
Posté le 11-07-2001 à 09:37:29  profilanswer
 

merci, je sais tres bien que c possible de faire heriter la classe principale d'un Listener. Toutefois je le deconseille car c vraiment pas tres propre comme programmation ...
a +

n°46049
gfive
Posté le 12-07-2001 à 00:08:02  profilanswer
 

Comment ça, pas très propre?? Ca dépend ce que tu fais..Par Y' plein de classes qui s'écoutent elles-même dans l'API java (ah oui, si vous avez téléchargé le JDK, jetez un oeil sur les sources, on en apprend parfois de belles... :D)..Pis quand tu codes une applet, par exemple, et que la taille finalme du .jar est un facteur important, ben t'hésites pas!

n°46371
Bandenabos
§;o)
Posté le 12-07-2001 à 16:46:46  profilanswer
 

D'accord avec gfive !!

n°46431
petoulachi
A fortiori, brigadier chef
Posté le 12-07-2001 à 19:38:51  profilanswer
 

bah programmez comme des porcs, moi ça me gene pas, mais j'aimerai pas etre celui qui passe derriere vous ...

n°46451
wouatouwou​atou
Posté le 12-07-2001 à 21:34:14  profilanswer
 

gfive a écrit a écrit :

MyTextfield mt = new MyTextfield("toto" );
et ben (mt instanceof MyTextField) renverra true...




 
Hihi... heureusement ke ca renvoie True... :D

mood
Publicité
Posté le 12-07-2001 à 21:34:14  profilanswer
 

n°46452
wouatouwou​atou
Posté le 12-07-2001 à 21:38:10  profilanswer
 

Au fait, je vous rappelle juste une chose : les interfaces en JAVA c pas pour faire de l'heritage multiple...
:D

n°46608
Bandenabos
§;o)
Posté le 13-07-2001 à 12:25:58  profilanswer
 

Si tu veux je te fais voir un peu sur quoi je travail, si tu dis que c'est de la merde je te dirai d'aller revoir les pattern Java histoire de te culturer !!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [java] création d'un KeyListener ... helpppp..

 

Sujets relatifs
[JAVA] KKun aurait le JDK 1.3 d'IBM pour LINUX en TAR ?[java] Sprite sur Desktop
[JAVA] structures de donnees : Graphes[JAVA] mettre un resultset dans un string ????
Création d'un jeu en VB[JAVA] Trouver le code ASCII d'un char ?
saisie clavier en JAVAscanf en JAVA
[java] sauvez moi!!!!!!!!!!!!!!!![JAVA] et base de donnees, comment faire un update, ou un delete ou ..
Plus de sujets relatifs à : [java] création d'un KeyListener ... helpppp..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR