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

EDT/SwingWorker Java Discussion :

Saisie clavier sur une interface


Sujet :

EDT/SwingWorker Java

  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par d�faut Saisie clavier sur une interface
    Bonjour � tous!

    Voila je programme une calculatrice scientifique (avec une interface et tout) et j'ai d�cid� de faire une saisie clavier afin de faciliter l'utilisateur. Mais mon probl�me c'est que sa ne fonctionne pas. J'ai essay� avec "next", voici le code d'un bouton.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Scanner sc = new Scanner(System.in);
     
    		this.add(bout1 = new JButton());
    		 bout1.setText("1");
    		 bout1.setPreferredSize(new Dimension(75,75));
    	        bout1.addActionListener(new ActionListener() {
     
    	            public void actionPerformed(ActionEvent e) {
     
    	            	if((e.getSource() == bout1) /*|| (sc.next())*/)
     
    	        			lab.setText(lab.getText() +"1");
     
    	            }
    Mais rien n'y fais donc est ce que quelqu'un pourrai m'aider ?

  2. #2
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Salut

    Pour associer des touches du clavier � des JButton, on utilise pas un Scanner sur l'entr�e standard console, on utilises les "key bindinds".

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    Action actionBouton1 = new AbstractAction("1") {
        public void actionPerformed(ActionEvent e) {
            //ici le code que tu veux faire
        }
    };
    bout1=new JButton(actionBouton1);
    bout1.getInputMap().put(KeyStroke.getKeyStroke('1'), "typed");
    bout1.getActionMap().put("typed", actionBouton1);
    Voir la documentation Oracle sur le sujet.

    EDIT : l'exemple ci-dessus, c'est pour le principe, mais comme tu as plusieurs boutons dans ta fen�tre, il faut en tenir compte (dans l'exemple ci-dessus, la touche qui a le focus intercepte le clavier).

    Voici un exemple de principe avec 2 boutons :

    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
            Action actionBouton1 = new AbstractAction("1") {
                public void actionPerformed(ActionEvent e) {
                    // code à faire si on appuie sur 1
                    System.out.println("bouton 1");
                }
            };
            Action actionBouton2 = new AbstractAction("2") {
                public void actionPerformed(ActionEvent e) {
                    // code à faire si on appuie sur 2
                    System.out.println("bouton 2");
                }
            };
     
            InputMap inputMap = new InputMap();
            inputMap.put(KeyStroke.getKeyStroke('1'),
                    "touche1");
            inputMap.put(KeyStroke.getKeyStroke('2'),
                    "touche2");
     
            ActionMap actionMap = new ActionMap();
            actionMap.put("touche1",
                    actionBouton1);
            actionMap.put("touche2",
                    actionBouton2);
     
            JButton bout1 = new JButton(actionBouton1);
            JButton bout2 = new JButton(actionBouton2);
     
            bout1 .setInputMap(JButton.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
            bout1 .setActionMap(actionMap);
            bout2 .setInputMap(JButton.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
            bout2 .setActionMap(actionMap);
    Pour g�rer plus facilement �a, tu peux avoir int�r�t � mettre tes actions et tes boutons dans des tableaux (ou des listes), et traiter le tout dans des boucles.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  3. #3
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par d�faut
    Merci pour ta r�ponse elle m'aide beaucoup!
    D�sol� du retard de la r�ponse j'�tais assez occup� et donc j'ai essayer avec se que tu m'a donn� mais pour l'instant sa ne marche pas.

    voici le code de ce que j'ai fait pour un Jbouton:
    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
    this.add(bout1 = new JButton());
    		 bout1.setText("1");
    		 bout1.setPreferredSize(new Dimension(75,75));
    	        bout1.addActionListener(new ActionListener() {
     
    	            public void actionPerformed(ActionEvent e) {
     
    	            	if((e.getSource() == bout1) )
     
    	        			lab.setText(lab.getText() +"1");
     
    	            }
    	        });
     
    	        Action actionBouton1 = new AbstractAction("1") {
    	            public void actionPerformed(ActionEvent e) {
    	                // code à faire si on appuie sur 1
    	            	lab.setText(lab.getText() +"1");
    	            }
    	        };
     
    	        InputMap inputMap = new InputMap();
    	        inputMap.put(KeyStroke.getKeyStroke('1'),
    	                "shift +1");
     
    		 ActionMap actionMap = new ActionMap();
    	        actionMap.put("shift+ 1",
    	                actionBouton1);
     
    	        bout1 .setInputMap(JButton.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
    	        bout1 .setActionMap(actionMap);
    D'ailleurs mon ordinateur ne poss�de pas de pav� num�rique donc je voudrai savoir quelle combinaison exacte il faut mettre pour avoir le 1 par exemple (j'utilise un macbook mais je pense pas que les combinaisons soient diff�rentes).

Discussions similaires

  1. [JTable] Raccourci clavier sur une Table
    Par sylvain_2020 dans le forum Composants
    R�ponses: 5
    Dernier message: 05/07/2007, 09h01
  2. [VBA-EXCEL]bloquer la saisie utilisateur sur une colonne
    Par calimero91 dans le forum Macros et VBA Excel
    R�ponses: 5
    Dernier message: 16/06/2006, 14h37
  3. R�ponses: 2
    Dernier message: 26/01/2006, 14h11
  4. Simuler le clavier sur une fen�tre plein-�cran ?
    Par Cracking_Cow dans le forum Windows
    R�ponses: 10
    Dernier message: 23/08/2005, 12h20
  5. Comment sp�cifier des raccourcis claviers sur une Form ?
    Par Sydaze dans le forum Composants VCL
    R�ponses: 5
    Dernier message: 17/06/2005, 09h05

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