Gestion Clavier - Java - Programmation
Marsh Posté le 25-11-2004 à 20:33:42
je suis débutant aussi en java mais je penses que si tu nous montrer ta méthode main on pourrait t'aider plus facilement : )
Marsh Posté le 25-11-2004 à 21:07:13
c'est pas comme ca que ca marche : il faut que tu utilises un KeyListener en surchargeant la méthode keyPressed() et que tu assigne ce listener au composant que tu veux sureveiller
Marsh Posté le 25-11-2004 à 23:00:42
en l'occurence certainement le containPane de la frame principale.
Marsh Posté le 26-11-2004 à 13:15:51
OK ! Merci pour les infos...
je vais tester ca alors, je vous tiens au courant !
Marsh Posté le 26-11-2004 à 14:23:51
Alors voila...j'ai testé ca :
Code :
|
mais cela ne marche pas...bien sur j'ai essayé avec la touche espace aussi enfin il manque peut etre un detail ou alors je teste mal on sait jamais
Quelqu'un peut m'aider sachant que j'ai bien sur mis implements KeyListener dans la "définition" de la classe ??
Merci !
Marsh Posté le 26-11-2004 à 21:29:42
tu l'ajoute a quoi ton listener?
Si ton but c'est de l'ajouter a une frame alors jte deconseille cette methode.
Marsh Posté le 27-11-2004 à 19:36:41
fais un system.out au début de ton keypressed event pour voir si ton listener est bien enregistré là ou tu veux.
Marsh Posté le 30-11-2004 à 10:13:47
Bonjour,
désolé de ne pas avoir répondu avant...
Citation : fais un system.out au début de ton keypressed event pour voir si ton listener est bien enregistré là ou tu veux. |
alors j'ai testé, rien ne s'affiche
Citation : tu l'ajoute a quoi ton listener? |
je veux l'ajouter à la frame en effet...
Que me conseillez vous alors car aparement c'est vrai que c'est déconseillé
Merci
Marsh Posté le 30-11-2004 à 13:03:51
ben fait une menubar et dans tes menuitem tu ajoute des "accelerator":
mi = new JMenuItem("mon menu qui doit demarrer par F2" );
mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2,0));
Marsh Posté le 30-11-2004 à 14:34:00
Surtout ton problème (je pense) vient du fait que tu n'as pas compris qu'il faut attacher ton listener à ta frame principale : en gros, là tu lui dis d'écouter, notamment si la touche F1 est enfoncée, mais tu ne lui dis pas où!
Du coup, il ne fait rien... et c'est normal.
Faut créer un Listener, mais faut également le rattacher à ton container (Frame principale, applet, composant quelconque, TextField) ainsi lorsqu'un évenement se produira sur ton container, il le renvoie à tous ses Listeners et chacun d'eux regardent si ça le concerne.
Si tu appuies sur F1 alors que ton container est actif, alors ton Listener renverra bien ton action (print de "F1 appuyé" )
Ok?
Marsh Posté le 30-11-2004 à 15:41:44
Salut !
OK je vais essayer toutes vos solutions et je vous dis quoi...
Merci
Marsh Posté le 30-11-2004 à 19:10:17
Bonsoir,
alors voila j'ai testé un peu
Citation : ben fait une menubar et dans tes menuitem tu ajoute des "accelerator": |
Peux tu me donner l'équivalent pour un MenuBar et un MenuItem et non pour un JMenuBar et un JMenuItem car je ne trouve pas...en fait j'ai fait toute mon appli en AWT alors mettre du swing pour ca...c'est bête non ? sinon je le ferai mais bon si je peux éviter ca serait mieux Sinon ca compile merci
Citation : Surtout ton problème (je pense) vient du fait que tu n'as pas compris qu'il faut attacher ton listener à ta frame principale : en gros, là tu lui dis d'écouter, notamment si la touche F1 est enfoncée, mais tu ne lui dis pas où! |
Ok pas de problème mais pour le ratacher à la Frame il ne faut pas faire uniquement que addKeyListener dans la classe suivi de la définition ??
Merci !
Marsh Posté le 30-11-2004 à 19:55:41
Peux tu me donner l'équivalent pour un MenuBar et un MenuItem
non
Marsh Posté le 30-11-2004 à 20:43:37
Bon ben OK...
c'est pas grave je vais intégrer un menu SWING dans l'application AWT enfin je vais essayer que tout ca fonctionne correctement...
Merci quand même !
Marsh Posté le 30-11-2004 à 23:26:29
c'est pas la premiere fois que tu demande un truc tout fait, ca soule.
ca te prend 3 sec en cherchant dans la javadoc.
Marsh Posté le 01-12-2004 à 10:58:13
niouts a écrit : Ok pas de problème mais pour le ratacher à la Frame il ne faut pas faire uniquement que addKeyListener dans la classe suivi de la définition ?? |
Alors là je ne sais plus, ça fait style 5 ans que je n'ai pas attaché de Listener à quoi que ce soit alors... faut regarder la doc (javadoc, tutorial java) y a sûrement des exemples et explications, mais je t'ai donné l'idée générale.
Marsh Posté le 01-12-2004 à 11:59:12
Citation : c'est pas la premiere fois que tu demande un truc tout fait, ca soule. |
Désolé si tout le monde n'est pas bilingue comme toi...j'avais précisé (en tout cas les autres fois je crois) que j'étais un débutant. Mais ce n'est pas grave, j'ai regardé la javadoc et j'ai trouvé comme tu me l'as dit donc merci ! et désolé d'être débutant
par contre je voulais avoir quelques infos sur les raccourcis claviers...
Aparemment avec ce code, il faut forcemment un raccourcis du style : Ctrl + Maj + F1 (par exemple)
Code :
|
Donc il doit exister surement une autre manière de faire pour que l'on puisse utiliser F1 comme raccourci...
mais j'ai cherché et je n'ai pas trouvé !
quelqu'un pourrait m'aider ??
Merci !
Marsh Posté le 01-12-2004 à 13:00:24
celui ci marche:
mi = new JMenuItem("mon menu qui doit demarrer par F1" );
mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0));
Marsh Posté le 01-12-2004 à 14:50:16
niouts a écrit :
|
Là encore c'est au niveau de ton Listener que tu dois faire qqchose : Suffit que tu lui dises que quand le gars tape F1, tu envoies un Event (KeyPressed je suppose) Ctrl+F1 à ton MenuItem Aide (tu mets Aide.setShortcut(new MenuShortcut(KeyEvent.VK_F1,false)); au lieu de "true" et y a pas de SHIFT, voir javadoc)
Faut se montrer créatif , t'as ton shortcut qui est forcément Ctrl+"qqchose", toi tu veux que ça se déclenche quand c'est "qqchose" (sans le CTRL), ben suffit de transformer le "qqchose" en "CTRL+qqchose".
C'est bête comme chou. Faut pas se laisser abattre par si peu...
Marsh Posté le 02-12-2004 à 16:23:34
Ben en fait je voulais simplement vous remercier pour vos réponses...ca ma beaucoup aidé
donc pour infos j'ai fais tout mes raccourcis avec Ctrl + qqch et puis sinon il y a les autres solutions qui ont été proposées...
Voila Encore Merci !
Marsh Posté le 19-11-2004 à 15:50:48
Re Bonjour, désolé de reposeter un autre sujet mais j'ai un autre problème...je suis débutant en Java donc cela peut se pardonner ! enfin j'espère
voila j'ai fait une autre petite application banale qui devrait réagir lorsque j'appuie sur la touche F1 en m'inscrivant un message dans la console (ou autre chose...) J'ai donc utiliser cette méthode que l'on m'avait conseillé...
Mais donc cela ne marche pas vraiment puisque rien ne réagit sauf si je créé un composant TextField et que le curseur est dedans alors lorsque j'appuie sur F1, tout est OK !
Est-ce que quelqu'un pourrait m'aider en me disant ce qui ne va pas dans ce code ? Et si je dois changer de méthodes ? Si oui Help SVP ?
Merci d'avance !
Message édité par niouts le 19-11-2004 à 15:51:20