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 :

lancer une action grâce à une touche du clavier


Sujet :

Java

  1. #1
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut lancer une action grâce à une touche du clavier
    Bonjour à tous,

    Je sais que cette question est vraiment simple, moi même ça me casse les pieds de chercher la dessus mais voilà mon prof nous demande de travailler en mode console, sans interface, comme je suis habitué à utiliser mon éditeur d'interface là je suis complêtement paumé.

    Je suis dans mon main, mon jeu d'essais écrit en dure se voit instancier correctement. Ensuite mon programme doit s'arrêter jusqu'à ce que j'appuis sur la barre d'espace.

    Je viens d'essayer en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    System.out.println("Push Space-bar for launch a call [Space]");
        if(KeyEvent.getKeyCode() == KeyEvent.VK_SPACE)
        {
        	System.out.println("new call");
        }
    Sans succès, je pense que je dois mal utiliser le KeyEvent. Comme je ne trouve pas vraiment d'exemple correspondant à ce que je souhaite car tous utilisant des interfaces ou des gestions d'evenements je me résigne à venir demander de l'aide.

    Voilà tout mon code de la classe contenant mon main si ça peut être utile:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    /**
     * @(#)Assignment1.java
     *
     * Assignment1 application
     *
     * @author 
     * @version 1.00 2008/10/24
     */
    import java.util.*;
    import java.io.*;
    import java.awt.*;
     
     
    public class Assignment1 {
     
        public static void main(String[] args)
        {
        //creation of the data set	
        	//creation of the list of queues which will contains all queues (Queu object)
        	Queues listQueues = new Queues();
     
        	//creation of each queue (Queu object)
        	listQueues.addQueue("Queue1");
        	listQueues.addQueue("Queue2");
        	listQueues.addQueue("Queue3");
        	listQueues.addQueue("Queue4");
     
        	//Test for see if queues are creat correctly
        	//int size = listQueues.getSize();
        	//System.out.println("Number of Queues : "+size);
     
        	//creation of the list of services which will contains all services (Serv object)
        	Services listService = new Services();
     
        	//creation of each service (Serv object)
        	listService.addService("Service1");
        	listService.addService("Service2");
        	listService.addService("Service3");
        	listService.addService("Service4");
     
        	//Test for see if services are creat correctly
        	//int size2 = listService.getSize();
        	//System.out.println("Number of Services : "+size2);
     
        	//datas about callers are into a .dat file, we need to read this file and to catch datas
        	//First, the list of Callers
        	Callers listCaller = new Callers();
     
        	//now, we'll read each lines of the file. On each line there are records about a caller
        	//for each line, while there is data on the current line, the soft reads and collects datas.
        	//datas are stocked for creat a new Caller
            String str;
            String aFirstName;
            String aLastName;
            String aRoom;
            Caller aCaller;
     
            try
            {
            	BufferedReader in = new BufferedReader(new FileReader("records.dat"));
     
            	while ((str = in.readLine()) != null)
            	{
               		aFirstName = str.substring(0,14);
               		aLastName = str.substring(15,29);
               		aRoom = str.substring(30,34);
     
                    //test for to see if datas are collected
               		//System.out.println(aFirstName+aLastName+aRoom);
     
               		aCaller = new Caller(aFirstName, aLastName, aRoom);
               		listCaller.addCaller(aCaller);
               	}
            	in.close();
        	}
        	catch (IOException e){}
     
        	//test for check if all callers are puted in the listCaller
        	//int size3 = listCaller.getSize();
        	//System.out.println("number of callers : "+size3);
     
        //
        System.out.println("Push Space-bar for launch a call [Space]");
        if(KeyEvent.getKeyCode() == KeyEvent.VK_SPACE)
        {
        	System.out.println("new call");
        }
     
     
        }
    }

  2. #2
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Points : 380
    Points
    380
    Par défaut
    Ton "KeyEvent" correspond à ce que l'on récupère dans un listener.
    Pour leur utilisation, il faut avant tout une interface graphique (voir la FAQ).

    Maintenant, il existe un moyen de le réaliser sous la console, c'est de regarder l'entrée de ton programme >> System.in.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DataInputStream in = new DataInputStream(System.in); //pour pouvoir lire les caractères facilement.
    while (in.readChar() != ' '); //ne fait rien et bloque tant que l'on n'a pas d'espace.

  3. #3
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    merci beaucoup

    après moulte recherches j'avais fini par m'orienter sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BufferedReader entry = new BufferedReader(new InputStreamReader(System.in));
        	keyBoarding = Integer.parseInt(entry.readLine());
    et le résultat me convient parfaitement

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

Discussions similaires

  1. Exécuter une action dans une action
    Par mattheox dans le forum Struts 1
    Réponses: 1
    Dernier message: 17/07/2008, 15h44
  2. Détecter une action d'une classe dans une autre classe
    Par Pirokkk dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 12/05/2008, 12h14
  3. Réponses: 1
    Dernier message: 19/02/2007, 16h58
  4. Appeler une action dans une action
    Par japz dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/01/2007, 08h48
  5. [Struts] Appel d'une action dans une action
    Par cosmos38240 dans le forum Struts 1
    Réponses: 2
    Dernier message: 16/02/2006, 15h52

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