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 :

[Stratégie] attendre un évenement sur une saisie clavier?


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Points : 43
    Points
    43
    Par défaut [Stratégie] attendre un évenement sur une saisie clavier?
    Bonjour,
    je suis un graduat en informatique ou l'on a commencé l'apprentissage de java cette année, l'on va devoir remettre un projet pour la fin de cette année et j'ai déja commencé a m'y mettre. Le projet a réaliser est un jeu de sudoku avec interface graphique et mode console simultanément, en appliquant a la lettre le modèle mvc, donc l'utilisateur peut soit entrer une ligne de commande en console, soit intéragir en graphique pour faire une action.

    ma question est: est-il possible d'attendre comme évenement une entrée au clavier? et d'y ajouter un listener comme pour un bouton ou autre? pour le moment mes recherches google n'ont rien donné.

    je me disais qu'un autre possibilité serait de passer par les threads mais on ne verra pas cette matière avant 1-2 mois et j'ai pas envie de devoir rusher au final.

    comment implémenteriez vous cela?

    merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    est ce que ceci repond a ta question?

    http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    pas vraiment, dans le tutorial il s'agit de mettre un listener sur un composant swing, je n'ai pas de probleme de ce coté la, j'ai besoin en quelque sorte de rajouter un listener sur une console, ma partie de code qui va parser la ligne de commande ne doit recevoir que les évenemnts clavier provenant de cette console.

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Hello,

    ce code permet de lire une ligne complète dans la console (jusqu'à l'appui de la touche enter)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    try {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      String s = br.readLine();
    } catch (IOException e){}
    Après, si vraiment tu veux avoir des levées d'événements, il faudra mettre ce code dans un thread séparé, tu n'as pas le choix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    new Thread () {
      public void run () {
        BufferedReader br;
        try {
          br = new BufferedReader(new InputStreamReader(System.in));      
        } catch (IOException e){return;}
     
        while(true) {
          try {
            String s = br.readLine();
            fireLineRead(s);
          } catch (IOException e ) {System.err.println(e);}
        }    
      }
     
      private void fireLineRead(String line) {
        // notifie les écouteurs
        ...
      }
    }.start();
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    ok merci, au moins maintenant je vois +/- vers quoi me tourner

Discussions similaires

  1. [Conseil] Log les évenements sur une autre db?
    Par zoltix dans le forum Administration
    Réponses: 6
    Dernier message: 03/06/2009, 12h13
  2. [MooTools] Deux évenement sur une même page
    Par enima83 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 01/07/2008, 17h31
  3. [dé]compter le nombre de caractères restants sur une saisie
    Par akara dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/09/2007, 15h36
  4. Recherche rapprochement sur une saisie
    Par fixfix dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 22/02/2007, 15h19
  5. Reception évenement sur une Application Console
    Par anisb dans le forum Langage
    Réponses: 3
    Dernier message: 03/02/2006, 19h29

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