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

 


Dernière réponse
Sujet : [java] création d'un KeyListener ... helpppp..
Bandenabos 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 !!

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Bandenabos 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 !!
wouatouwouatou Au fait, je vous rappelle juste une chose : les interfaces en JAVA c pas pour faire de l'heritage multiple...
:D
wouatouwouatou

gfive a écrit a écrit :

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




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

petoulachi bah programmez comme des porcs, moi ça me gene pas, mais j'aimerai pas etre celui qui passe derriere vous ...
Bandenabos D'accord avec gfive !!
gfive 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!
petoulachi 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 +
gfive 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)
Bandenabos 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.
Kouye ok merci a toi petoulachi :)
je vais essayer ainsi alors :)
 
a+
petoulachi 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:

Kouye 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 :)

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)