IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Touche d'entrée clavier


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Touche d'entrée clavier
    Bonjour,
    Voila pour actuellement pour récupérer une information provenant de l'utilisateur au clavier j'utilise cette méthode qui marche très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Scanner sc = new Scanner(System.in);
            nom_de_ma_variable = sc.nextInt();
    L'utilisateur tape son entier au clavier puis valide avec la touche entrée, cela marche...

    Mais j'aimerais capté la première touche du clavier ( je code des jeux au tour par tour pour m'exercer ) instantanément, sans avoir a valider avec entrée, pour plus de dynamisme et de rapidité....

    Voila j'espère que vous allez pouvoir m'aider

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 38
    Points
    38
    Par défaut
    Je n'ai pas tout compris... Tu veux récupérer la saisie clavier ?

    Regarde si ca peut t'intéresser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    char caractere = str.charAt(0);
    System.out.println("Caractère saisie " + caractere);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Oui mais je veut que dès l'instant où l'utilisateur appuie sur une touche, cela stop le processus et que la valeur saisie, la touche sois mise dans une variable, sans appuyez sur entrée pour valider...

    par exemple dans mon jeu j'ai ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    action = sc.nextInt();
            if(action==1){  
                j1.attaqueNormale(mob);
            }
            if(action==2){  
                j1.soinNormale();
            }
            if(action==3){ 
                j1.fuir();
                mob.setVie(-1);
            }
    Mais pour par exemple attaquer, il faut appuyez sur la touche 1, puis valider avec entrée, se qui est pas très ergonomique ni rapide ...

    Je veut qu'en appuyer sur 1 ou 2 ou 3 cela déclenche tout de suite mon code, sans validation ....

  4. #4
    Membre habitué Avatar de titourock
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 156
    Points : 190
    Points
    190
    Par défaut
    Bonjour,

    Il existe l'interface KeyListener qui permet de récupérer ce que tu recherches à l'aide des méthodes keyPressed, keyReleased et keyTyped.
    De plus tu as les méthodes getKeyCode ou getKeyChar de la classe KeyEvent qui renvoient (selon un certain "code") la touche frappée.

    A bientôt
    Dans la vie, il y a trois sortes de mathématiciens : ceux qui savent compter et ceux qui ne savent pas...

    Ne jamais jouer à saute-moutons avec une licorne...

  5. #5
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Non pas du tout ces classes fonctionne dans le cas des composants SWING pas pour une console.
    Je ne pense pas qu'il y ai de solution, c'est le fonctionnement normal d'une console d'envoyer les données uniquement lors du entrée.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  6. #6
    Membre habitué Avatar de titourock
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 156
    Points : 190
    Points
    190
    Par défaut
    Oui mais il faut l'utiliser en "feintant", en créant une fenêtre dont le "setVisible" est à false ce qui permet d'utiliser les écouteurs que j'ai mentionnés ci-dessus...(ou c'est encore une grosse bêtise?)
    Dans la vie, il y a trois sortes de mathématiciens : ceux qui savent compter et ceux qui ne savent pas...

    Ne jamais jouer à saute-moutons avec une licorne...

  7. #7
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    C'est possible que ça fonctionne mais dans ce cas si il doit apprendre à utiliser SWING autant faire une interface en SWING.
    De plus je pense que ta méthode a un désavantage c'est que si la frame invisible perd le focus (au profil de la console par exemple) les évènements ne seront plus écouté. Si la frame est invisible on ne se rend pas compte de la perte du focus.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Ouai jpense que jvé abandonner lol on verrat bien quand je mettrais tout ca dans un mode " fenetrer " et plus console, mais merci quand même ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] console , entrée clavier
    Par maminova dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 18/10/2005, 10h49
  2. [HTML]bouton submit et touche "entree" du clavier
    Par cameles dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/09/2005, 03h27
  3. [Entrée standard] Prendre les entrées clavier.
    Par Katyucha dans le forum Langage
    Réponses: 4
    Dernier message: 19/09/2005, 12h22
  4. [MFC] faire réagir des touches + et - du clavier
    Par pitit777 dans le forum MFC
    Réponses: 4
    Dernier message: 06/06/2005, 17h06
  5. Réponses: 3
    Dernier message: 04/02/2004, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo