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

Composants Java Discussion :

[JTextArea] Supprimer le retour à la ligne


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Par défaut [JTextArea] Supprimer le retour à la ligne
    Bonjour.

    Je suis entrain de faire une fenêtre qui va contenir 2 JTextArea et 1 JButton. Cette fenêtre ressemble fortement à une fenêtre de chat.

    Ce que j'aimerai faire c'est que lorsque je tappe mon texte dans mon 1er JTextArea et que je tappe sur ENTER, le texte écrit soit envoyé dans le 2e JTextArea. Mais lorsque je tappe sur ENTER je fais un retour à ligne.

    J'ai même configuré la fenêtre en mettant le JButton par défaut, mais cela ne marche pas.

    Voici mon code pour l'instant
    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
    c = getContentPane();
    		panel = new JPanel();
    		panel.setLayout(null);
    		button1 = new JButton();
    		button2 = new JButton();
    		messageField = new JTextArea();
    		messageField.setLineWrap(true); //Retourne automatiquement à la ligne
    		messageField.setWrapStyleWord(true); //Les mots ne sont pas coupe si il y a un retour a la ligne
     
    		discussionField = new JTextArea();
    		discussionField.setLineWrap(true);
    		discussionField.setWrapStyleWord(true);
     
    		scrollpane1 = new JScrollPane(messageField);
    		scrollpane2 = new JScrollPane(discussionField);
     
    		scrollpane1.setBounds(3, 400, 300, 60);
    		scrollpane2.setBounds(3, 5, 430, 380);
    		button1.setBounds(305,400,125,60);
     
    		button1.setText(I18N.getString("fenetrechat.button.sendmessage"));
    		button2.setText(I18N.getString("fenetrechat.button.sendfiles"));
     
    		button1.addActionListener(this);
    		button2.addActionListener(this);
     
    		getRootPane().setDefaultButton(button1);//Touche button1 equivaut à tapper sur ENTER
     
    		panel.add(button1);
    		panel.add(scrollpane1);
    		panel.add(scrollpane2);
     
    		c.add(panel);
     
    		return panel;
    Je crois que je devrais implémenter la classe KeyEvent mais malgré cela, je ne sais pas comment m'y prendre. Quelqu'un aurait une solution ?

    Merci bien

    Dasson

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Une des solutions serait d'ajouter un KeyListener à ton JTextArea qui doit avoir le focus lorsque tu écris à l'intérieur (ce qui paraît logique ^^).
    Donc, comment écrire un KeyListener? (tutoriel Sun ^^)
    J'espère t'avoir éclairer

    Voilà, ++
    Gueritarish

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Par défaut
    Ha donc en gros, si j'ai bien compris, j'implémente la classe KeyListener.
    - J'ajoute les différentes méthode keypressed, keyreleased,...
    - Je rajoute ceci sur mon JTextArea :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    messageField.addKeyListener(this);
    - Dans la méthode keypressed, je met comme condition : SI ENTER est tappé, j'appelle l'action du bouton envoyé.

    Est ce comme cela que je dois me prendre ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Par défaut
    Merci bien j'ai trouvé ma solution

    Je laisse le code pour les autres, ça pourrai aider

    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
    public void keyReleased(KeyEvent e) {
    		if(e.getKeyCode() == KeyEvent.VK_ENTER)
    			messageField.setText(null);
    	}
     
    	public void keyPressed(KeyEvent e) {
    		if(e.getKeyCode() == KeyEvent.VK_ENTER){
    			button1.doClick();
    		}
    	}
            public void actionPerformed(ActionEvent e) {
    		Object source = e.getSource();
    		if(source == button1){
    			String message = messageField.getText();
    			if(message != null){
    				discussionField.setText(message);
    				messageField.setText(null);
    			}
    		}
    		else if (source == button2){
     
    		}
    	}
     
    private JPanel buildContentPane(){
    		c = getContentPane();
    		panel = new JPanel();
    		panel.setLayout(null);
    		button1 = new JButton(); //Bouton pour envoyer les messages
    		button2 = new JButton(); //Bouton pour envoyer des fichers
    		messageField = new JTextArea();
    		messageField.setLineWrap(true); //Retourne automatiquement à la ligne
    		messageField.setWrapStyleWord(true); //Les mots ne sont pas coupe si il y a un retour a la ligne
     
    		messageField.addKeyListener(this);
     
    		discussionField = new JTextArea();
    		discussionField.setLineWrap(true);
    		discussionField.setWrapStyleWord(true);
     
    		scrollpane1 = new JScrollPane(messageField);
    		scrollpane2 = new JScrollPane(discussionField);
     
    		scrollpane1.setBounds(3, 400, 300, 60);
    		scrollpane2.setBounds(3, 5, 430, 380);
    		button1.setBounds(305,400,125,60);
     
    		button1.setText(I18N.getString("fenetrechat.button.sendmessage"));
    		button2.setText(I18N.getString("fenetrechat.button.sendfiles"));
     
    		button1.addActionListener(this);
    		button2.addActionListener(this);
     
    		getRootPane().setDefaultButton(button1);//Touche button1 equivaut à tapper sur ENTER
     
    		panel.add(button1);
    		panel.add(scrollpane1);
    		panel.add(scrollpane2);
     
    		c.add(panel);
     
    		return panel;
    	}
    Voilà merci en tout cas pour ce lien qui m'a aidé.

    Dasson

  5. #5
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Pas de problème ^^
    Pour plus de "facilité" tu peux utiliser un KeyAdapter qui implémente les méthodes du KeyListener. Donc, il ne te reste qu'à surcharger les méthodes qui t'intéresse ^^
    Mais bon, c'est juste du "fignolage"

    Sinon, pense au tag
    Et voilà, ++
    Gueritarish

    [EDIT] J'ai rien dis à propos du tag

  6. #6
    Membre averti
    Inscrit en
    Février 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 37
    Par défaut
    Bonsoir,

    J'aimerais faire pareil, j'ai un jtextarea permettant l'insertion de texte pour un chat. Lorsque j'appuie sur la touche enter pour envoyer le texte, mon keylistener fonctionne, je set le texte à null mais j'ai tjrs ce retour à la ligne, et ca m'énerve :-D

    Merci d'avance si vous pouvez m'aider !

    [EDIT]
    J'ai réussi en faisant comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     jTextArea2.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "none");
            jTextArea2.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "none");
    ainsi, on désactive l'événement de la touche enter sur la jtextArea. Bon à savoir!

  7. #7
    Invité de passage
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1
    Par défaut Merciii
    Ton Code la m'as vraiment aidé tYuu Very mutch

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

Discussions similaires

  1. [MySQL] Supprimer les retours à la ligne
    Par p0Kep0K dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/06/2012, 12h54
  2. Supprimer le retour à la ligne après une liste deroulante
    Par kobe dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 30/08/2006, 14h34
  3. [CSV] supprimer les retours à la ligne
    Par illegalsene dans le forum Langage
    Réponses: 3
    Dernier message: 09/01/2006, 17h14
  4. [RegEx] supprimer les retours à la ligne
    Par illegalsene dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2005, 11h53
  5. [JTextArea] Fichier et retour à la ligne
    Par eraim dans le forum Composants
    Réponses: 4
    Dernier message: 23/06/2004, 09h21

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