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 :

Problème d'évènement clavier


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut Problème d'évènement clavier
    Bonjour,

    Voila j'essai désespérément d'afficher le contenu d'un JTextArea dans un autre lorsque l'on appuie sur la touche entrée mais hélas ce que j'ai fais ne marche pas et je ne comprend pas pourquoi Voici mon code:

    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
    package client;
     
    import java.awt.BorderLayout;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    //import javax.swing.JMenuItem;
    import javax.swing.ActionMap;
    import javax.swing.InputMap;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextArea;
    import javax.swing.KeyStroke;
     
    public class InterfaceGraphique extends JFrame {
    	private static final long serialVersionUID = -2040488316874518030L;
    	JPanel panel = new JPanel ();
    	JPanel result = new JPanel ();
    	JSplitPane split = new JSplitPane (JSplitPane.VERTICAL_SPLIT, panel, result);
    	JTextArea envoieTexte = new JTextArea (5, 55);
    	JTextArea receptionTexte = new JTextArea (20, 55);
    	JScrollPane scroll = new JScrollPane ();
     
    		public InterfaceGraphique () {
    			build (); //On initialise notre fenetre
    		}
     
    		private void build () {
    			JMenuBar menuBar = new JMenuBar ();
    			JMenu menu1 = new JMenu ("Fichier");
    			//JMenuItem quitter = new JMenuItem (new QuitterAction ("Quitter"));
    			JMenu menu2 = new JMenu ("?");
    			//JMenuItem aPropos = new JMenuItem (new AProposAction (this, "A propos"));
     
    		    //menu1.add (quitter);
    			menuBar.add (menu1);
    			//menu2.add (aPropos);
    			menuBar.add (menu2);
    			setJMenuBar (menuBar);
    			setTitle ("Tchat"); //On donne un titre a l'application
    			setSize (640, 480); //On donne une taille a notre fenetre
    			setLocationRelativeTo (null); //On centre la fenêtre sur l'écran
    			setResizable (true); //On autorise le redimensionnement de la fenetre
    			setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); //On dit a l'application de se fermer lors du clic sur la croix
    			getContentPane ().add (this.split, BorderLayout.CENTER);
    			getContentPane ().add (buildContentPane (), BorderLayout.NORTH);
    			getContentPane ().add (this.result.add (this.envoieTexte), BorderLayout.SOUTH);
    			//this.receptionTexte.setText("iluwdfghgiudrgh\niosrughiurh");
    			this.envoieTexte.setFocusable (true);
    			this.envoieTexte.requestFocus ();
    			InputMap inputMap = this.envoieTexte.getInputMap();
    			ActionMap actionMap = this.envoieTexte.getActionMap ();
    			inputMap.put (KeyStroke.getKeyStroke ("Entrée"), "envoiTexte");
    			actionMap.put ("envoiTexte", new GetAction (this));
    		}
     
    		private JPanel buildContentPane () {
    			//this.scroll.add (this.receptionTexte);
    			//this.panel.add (this.scroll);
    			this.receptionTexte.setLineWrap (true);
    			this.receptionTexte.setEditable (false);
    			this.panel.add (this.receptionTexte);
    			//this.panel.setLayout (new FlowLayout ());
     
    			return panel;
    		}
     
    		public JTextArea getEnvoieTexte () {
    			return this.envoieTexte;
    		}
     
    		public JTextArea getReceptionTexte () {
    			return this.receptionTexte;
    		}
    }
    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
    package client;
     
    import java.awt.event.ActionEvent;
     
    import javax.swing.AbstractAction;
     
    public class GetAction extends AbstractAction {
    	private static final long serialVersionUID = -4643889046538595704L;
    	private InterfaceGraphique fenetre;
     
    		public GetAction (InterfaceGraphique fenetre) {	
    			this.fenetre = fenetre;
    		}
     
    		public void actionPerformed(ActionEvent e) { 
    			String texteUtilisateur = fenetre.getEnvoieTexte ().getText ();
     
    			fenetre.getReceptionTexte ().setText (texteUtilisateur);
    		}
    }
    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
    package client;
     
    import javax.swing.SwingUtilities;
     
    public class TestInterface {
    	public static void main(String[] args) {
    		SwingUtilities.invokeLater (new Runnable (){
    			public void run (){
    				//On cree une nouvelle instance de la fenetre
    				InterfaceGraphique fenetre = new InterfaceGraphique ();
    				fenetre.setVisible (true); //On la rend visible
    			}
    		});
    	}
    }
    Si quelqu'un peut m'aider à comprendre ce qui ne va pas Merci d'avance.

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    KeyStroke.getKeyStroke("ENTER")
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    KeyStroke.getKeyStroke("Entrée")

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    Merci Mais maintenant j'ai un autre petit soucis qui est que lors de la première pression de la touche entrée j'ai un retour à la ligne qui m'embete puisque j'arrive à effacer le contenu en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.envoieTexte.setText (null);
    Mais hélas j'écris toujours sur la deuxième ligne du JTextArea

  4. #4
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Le retour à la ligne dans un JTextArea est naturel, puisque la fonction de ce composant est de pouvoir écrire un texte complexe.
    Il serait plus simple de changer la touche entré par une autre !
    Sinon as-tu choisi le bon composant ? Un JTextField ne serait-il pas plus adapté ?
    Enfin, afin de mieux cerner tes attentes, il serait sans doute bienvenue que tu explique sommairement le but de cette appli.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    C'est bon je n'ai rien dit j'ai pu y remédier Merci beaucoup de ton aide en tout cas

    Sinon pour répondre à ta question c'est un petit tchat^^

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/07/2005, 09h29
  2. problème de caractères clavier!!!
    Par brunetc dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 10/06/2005, 13h39
  3. Problème d'écouteur clavier
    Par m@t dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 19/01/2005, 22h05
  4. Problèmes d'évènements sur ComboBox
    Par bakaneko dans le forum MFC
    Réponses: 3
    Dernier message: 23/02/2004, 08h46
  5. Problème évènements clavier
    Par julie20 dans le forum Langage
    Réponses: 3
    Dernier message: 24/09/2003, 12h39

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