Java - Problème avec le clavier

Géomaster -  
 Géomaster -
Voilà bonjour à tous, j'ai un p'tit probleme en Java.

Je cherche tant bien que mal à faire une méthode qui boucle à l'infini tant que l'utilisateur n'a pas appuyé sur Entrée.
Je suis sur que c'est simple mais par manque de temps je suis obligé d'aller vite et je n'obtiens pas le résultat que je souhaite...

Il faudrait faire boucler le addKeyListener je sais pas...

Merci d'avance.
A voir également:

5 réponses

Utilisateur anonyme
 
Pas besoin de boucler.

package CCM;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
*
* @author HackTrack
* @version 1.0
*/
public class TempTest extends JFrame{
private Container c;
private JTextField input;


public TempTest() {
super("Return key tester");
initialize();
}

private void initialize(){
c = getContentPane();
c.setSize(320,200);
c.setLayout(new GridLayout(3,1));
input = new JTextField(20);
input.addKeyListener(new KeyListener(){
public void keyPressed(java.awt.event.KeyEvent keyEvent) {
}

public void keyReleased(java.awt.event.KeyEvent keyEvent) {
if(keyEvent.getKeyCode()==KeyEvent.VK_ENTER){
System.out.println("ok");
}
}

public void keyTyped(java.awt.event.KeyEvent keyEvent) {

}

});
c.add(input);

}

public static void main(String args[]){
TempTest tt = new TempTest();
tt.pack();
tt.setVisible(true);
}
}

;-)
HackTrack
1
Géomaster
 
Oui... Mais ça ne résout pas entièrement mon problème. J'ai rééllement besoin d'une boucle.

Voilà mon écouteur...

----------------------------------------------------------------
addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
switch(e.getKeyCode())
{
case KeyEvent.VK_ENTER : jeu.lumiEnter(); break;
case KeyEvent.VK_LEFT : jeu.lumimiGauche(); break;
case KeyEvent.VK_UP : jeu.lumimiHaut(); break;
case KeyEvent.VK_RIGHT : jeu.lumimiDroite(); break;
case KeyEvent.VK_DOWN : jeu.lumimiBas(); break;
}
oldKey = e.getKeyCode();
}
});
----------------------------------------------------------------
En fait c'est un jeu qui se déroule dans un panel (qui est lui meme dans une frame). Quand on appuie sur les touches haut, gauche, bas, droite, on déplace un personnage. Quand on appuie sur Entrée, ca affiche un dialogue (comme dans tout jeux de roles en fait lol) et il faudrait que le jeu "boucle" tant que l'utilisateur n'a pas mis fin au dialogue en appuyant sur entrée...

Car jusqu'ici, soit le dialogue disparait sans meme attendre un geste du joueur, ou alors tout reste bloqué...

Help me again please lol...
0
Utilisateur anonyme
 
Je crois que le KeyAdapter ne génère pas d'évènement "KeyPressed" lors de l'appui sur une les touches CTRL, ESC, RETURN, F1, F2, ...

Je pense que tu dois overrider la méthode "keyReleased(KeyEvent e)" à la place de la méthode "keyPressed(KeyEvent e)"

Essaie et dis-moi ce que cela donne

;-)
Hacktrack
0
Géomaster
 
Re :o)

J'ai essayé avec keyReleased() et ça donne un résultat identique... Tu ne pourrais pas essayer de faire le mm exemple que tu m'avais donné mais avec un KeyListener car là j'avoue qque je bloque sévère...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Géomaster
 
Non attends lol. Je me trompe de forum (j'avoue que je demande partout tellement ca m'énerve de pas y arriver tout seul !) lol

Euh... tu aurais pas une idée, un p'tit prog de qqs lignes ?
Je faisais ca un une ligne sur Pascal alors qd mm boudiou ! lol ;o)
0