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

Java Discussion :

[J2SE] Problème bête


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Soronite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 82
    Par défaut [J2SE] Problème bête

    Voila depuis 2 jours j'essaye de récupérer un caractère dans la console sans avoir à taper sur Entrée. Je voudrais par exemple que quand l'utilisateur appuie sur 'a', je lis ce 'a' directe dans mon programme sans qu'il n'est besoin de taper sur Entrée pour valider. J'ai besoin de faire cela afin de faire de l'auto-complétion -> donc évolue à chaque nouvelle lettre tapée.

    J'ai fais plusieurs choses, voici les dernières idées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Idée n°1
    Scanner scanner = new Scanner(System.in);
    System.out.println(scanner.next(Pattern.compile(".")));
     
    // Idée n°2
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1);
    System.out.println((char) System.in.read());
    Si vous pouvez me donner la solution de se problème tous bête ! Merci

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    idée 2, c pas mal avec petite modif:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Idée n°2
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1);
    System.out.println((char) System.in.read());
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Idée n°2
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1);
    br.read(); // Char
    br.readLine(); // Line
    Le paramètre 1 dans InputStreamReader à voir
    Libairie java.io.*

  3. #3
    Membre confirmé Avatar de Soronite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 82
    Par défaut Lire un caractère sans appuyer sur Entrée
    J'ai essayé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Idée n°2
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1);
    br.read(); // Char
    br.readLine(); // Line
    Mais dommage cela ne passe pas car il est nécessaire de taper Entrée pour valider. Certe sa valide le "read" et le "readLine" en un seul appuis mais se que je recherche c'est de lire les caractères dés leurs saisies sans avoir à appuyé sur Entrée !!!

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Malheureusement cela n'est pas possible de manière simple...

    En fait cela n'est pas du tout portable et la manière de procéder varie d'un OS à l'autre...


    Ainsi en natif avec du C on utilisera la librairie conio.h et getch() sous Windows, et la librairie (n)curses et son mode spécial de traitement du terminal sous les systèmes Unixes, mais avec des particularité des deux cotés...



    Il n'y a donc aucun moyen en standard, et il faut donc passer par du code natif spécifique à l'OS (à moins de trouver une librairie externe qui ferait déjà cela).

    a++

  5. #5
    Membre confirmé Avatar de Soronite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 82
    Par défaut
    Merci adiGuba,
    La solution de coder cela en C et de l'appelé via JNI m'avait traversé l'esprit sens trop vouloir croire que je devais me résoudre à cela .
    Apparament je vai devoir quand même passer par cette solution .

    Bon et bien c'est résolue

    PS: Une fois le codage terminé je déposeraie le code

    A+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/02/2015, 09h12
  2. [AC-2007] Problème bête dans access
    Par rached2005 dans le forum Access
    Réponses: 4
    Dernier message: 12/03/2013, 12h22
  3. Problème bête sur formule
    Par Nanais19 dans le forum Excel
    Réponses: 3
    Dernier message: 04/10/2011, 13h35
  4. Problème bête char*
    Par PP(Team) dans le forum C
    Réponses: 20
    Dernier message: 17/09/2008, 23h29
  5. [C#] Problème bête avec le combo
    Par irnbru dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/03/2006, 16h40

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