OVH Cloud OVH Cloud

[Débutant] KeyListener raccroché à rien

3 réponses
Avatar
Joe le Bonka
Je débute en Java, et je me renseigne sur les interruptions et les
événements claviers.
Je pense avoir bien compris l'ensemble :
-on fait une classe avec une implementation de KeyListener
-on déclare les procédures keyTyped, keyPressed et KeyReleased dedans
-on rajoute un .addKeyListener(this)

J'ai trouvé pleins d'exemples où ce KeyListener est rattaché à une boite, un
champ de texte.
Mais comment faire quand ce KeyListener n'est rattaché à rien ? C'est à
dire, je ne veux pas créer de boites, ni d'objets particuliers. Je veux
juste faire une interruption clavier et renvoyer le caractère sur la console
?

3 réponses

Avatar
Hervé AGNOUX
Joe le Bonka wrote:

Je débute en Java, et je me renseigne sur les interruptions et les
événements claviers.
Je pense avoir bien compris l'ensemble :
-on fait une classe avec une implementation de KeyListener
-on déclare les procédures keyTyped, keyPressed et KeyReleased dedans
-on rajoute un .addKeyListener(this)

J'ai trouvé pleins d'exemples où ce KeyListener est rattaché à une boite,
un champ de texte.
Mais comment faire quand ce KeyListener n'est rattaché à rien ? C'est à
dire, je ne veux pas créer de boites, ni d'objets particuliers. Je veux
juste faire une interruption clavier et renvoyer le caractère sur la
console ?


J'ai l'impression que c'est un programme en ligne de commande que tu
voudrais faire, comme sous unix ?

Dans ces conditions, il ne faut pas du tout utiliser swing et les listeners,
mais t'orienter vers la gestion des flux standards, avec java.lang.System,
particulièrement in, out et err.

Tu trouveras un exemple un peu complet à "Converting Numeric Entries and
Displaying Multiline Text",
http://java.sun.com/developer/JDCTechTips/2002/tt0723.html

Cordialement.


--
Hervé AGNOUX
http://www.diaam-informatique.com

Avatar
Joe le Bonka
Hervé AGNOUX wrote:
Joe le Bonka wrote:

Je débute en Java, et je me renseigne sur les interruptions et les
événements claviers.
Je pense avoir bien compris l'ensemble :
-on fait une classe avec une implementation de KeyListener
-on déclare les procédures keyTyped, keyPressed et KeyReleased dedans
-on rajoute un .addKeyListener(this)

J'ai trouvé pleins d'exemples où ce KeyListener est rattaché à une
boite, un champ de texte.
Mais comment faire quand ce KeyListener n'est rattaché à rien ?
C'est à dire, je ne veux pas créer de boites, ni d'objets
particuliers. Je veux juste faire une interruption clavier et
renvoyer le caractère sur la console ?


J'ai l'impression que c'est un programme en ligne de commande que tu
voudrais faire, comme sous unix ?

Dans ces conditions, il ne faut pas du tout utiliser swing et les
listeners, mais t'orienter vers la gestion des flux standards, avec
java.lang.System, particulièrement in, out et err.

Tu trouveras un exemple un peu complet à "Converting Numeric Entries
and Displaying Multiline Text",
http://java.sun.com/developer/JDCTechTips/2002/tt0723.html

Cordialement.


Merci pour ces précisions, je vais scruter de ce coté mais je reste
interessé par la methode Keylistener, d'autant plus que je me repose des
questions à ce sujet :
Est ce que quand on fait une application avec plusieurs objets, le
programmeur, quand il veut utiliser un KeyListener, est également obligé de
copier/coller ses Keypressed dans TOUS ses objets ? ou l'on peut affecter un
unique Keylistener sur un objet général, genre windows.application ???


Avatar
Xavier Tarrago
Il est possible d'inscrire des listeners pour tous les évènements de
l'application par
Toolkit.getDefaultToolkit().addAWTEventListener(AWTEventListener listener,
long eventMask).

Pour ce qui est des évènements clavier, on peut aussi chercher du coté de
http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html

Ceci dit, en général, dans une application, on veut traiter les évènements
différemment selon le composant dans lequel ils sont émis. C'est pourquoi,
le plus courant est de mettre un listener différent sur chaque composant.

"Joe le Bonka" a écrit dans le
message de news:42335f5e$0$19343$
Hervé AGNOUX wrote:
Joe le Bonka wrote:

Je débute en Java, et je me renseigne sur les interruptions et les
événements claviers.
Je pense avoir bien compris l'ensemble :
-on fait une classe avec une implementation de KeyListener
-on déclare les procédures keyTyped, keyPressed et KeyReleased dedans
-on rajoute un .addKeyListener(this)

J'ai trouvé pleins d'exemples où ce KeyListener est rattaché à une
boite, un champ de texte.
Mais comment faire quand ce KeyListener n'est rattaché à rien ?
C'est à dire, je ne veux pas créer de boites, ni d'objets
particuliers. Je veux juste faire une interruption clavier et
renvoyer le caractère sur la console ?


J'ai l'impression que c'est un programme en ligne de commande que tu
voudrais faire, comme sous unix ?

Dans ces conditions, il ne faut pas du tout utiliser swing et les
listeners, mais t'orienter vers la gestion des flux standards, avec
java.lang.System, particulièrement in, out et err.

Tu trouveras un exemple un peu complet à "Converting Numeric Entries
and Displaying Multiline Text",
http://java.sun.com/developer/JDCTechTips/2002/tt0723.html

Cordialement.


Merci pour ces précisions, je vais scruter de ce coté mais je reste
interessé par la methode Keylistener, d'autant plus que je me repose des
questions à ce sujet :
Est ce que quand on fait une application avec plusieurs objets, le
programmeur, quand il veut utiliser un KeyListener, est également obligé
de

copier/coller ses Keypressed dans TOUS ses objets ? ou l'on peut affecter
un

unique Keylistener sur un objet général, genre windows.application ???