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 :

[KeyLister] Probleme dans JTextArea


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 69
    Par défaut [KeyLister] Probleme dans JTextArea
    Bonjour,

    J'aimerai empêcher mon JTextArea de faire quoique ce soit lorsque j'appuie sur "Enter" et que ce meme JTextArea est vide

    J'ai utilisé cette technique :

    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
     
    		txtParole.addKeyListener(new KeyAdapter()
    		{
    			public void keyPressed(KeyEvent e)
    			{
    				if (e.getKeyCode() == KeyEvent.VK_ENTER)
    				{					
    					if (txtParole.getText().length() > 0)
    					     txtParole.setText("Hello") ;
     
    					txtParole.setText("") ;
     
    				}
    			}
    		}) ;
    Mais ça ne fonctionne pas bien, il fait le "enter" dans le jtxtArea et ensuite il enlève le txt. Alors que je voudrais que rien ne bouge dans ce cas, meme lorsqu'on laisse le bouton "enter" appuié pendant qque secondes.

    Merci de votre aide

    gl0be

  2. #2
    Membre chevronné Avatar de anitshka
    Inscrit en
    Mai 2004
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 624
    Par défaut
    j'ai pas compris ton problème...
    moi ce que je vois c'est que si il appuye sur entrer, alors il y a une vérification de la longueur qui affecte une text a ton textarea puis de toute facon tu lui met le texte a vide ensuite....
    si tu veux que rien ne se passe, tu ne met rien dans ta boucle...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 69
    Par défaut
    j'aimerai que seulement le code mis dans le listner soit executer, et qu'il ne fasse pas le retour à la ligne.

  4. #4
    Membre confirmé
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Par défaut
    La en ce moment si tu a quelque chose tu ecris Hello et juste apres tu l effaces.

    peut etre avec un else sur ton if si tu veux une remise a zero dans un cas particulier mais la des que tu appuie sur entrer ton JText deviens Hello.

    ou sinon retirer ton txtParole.setText(");

    Peut etre un peu plus d explication sur ce que tu veux vraiment.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 69
    Par défaut
    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
     
          txtParole.addKeyListener(new KeyAdapter() 
          { 
             public void keyPressed(KeyEvent e) 
             { 
                if (e.getKeyCode() == KeyEvent.VK_ENTER) 
                {                
                   if (txtParole.getText().length() > 0) 
                      {
                           enregistrer(txtParole.getText()) ;
                           txtParole.setText("") ;
                      } 
                } 
             } 
          }) ;
    en faite mon applic enregistre le txt contenu dans mon JtxtArea. Ensuite je veux vider JtxtArea. Si mon JTxtArea est vide, je ne veux pas qu'il puisse appuier sur Enter. Cependant, avant de rentrer dans mon keyListner il y a déjà un caractère écris (un "enter") par exemple alors ça merde.

    J'aimerai que rien ne se passe (meme pas que le tabulateur bouge) lorsque j'appuie sur enter que mon JtxtArea est vide)

    Merci de votre aide

    gl0be

  6. #6
    Membre confirmé
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Par défaut
    Salut

    Bon je pense que tu pourrait desactiver le fait d appuyer sur entrer au premier passage et rajouter un listener sur ton JTextArea pour que quand tu tappe a nouveau un character ou + dans le JText tu reactive la touche entrer.

    Je fais une recherche dessus et te tiens au courant. Dit moi si j ai bien compris ton system.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 69
    Par défaut
    J'ai trouvé une astuce :

    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
     
    		txtParole.addKeyListener(new KeyAdapter()
    		{
    			public void keyPressed(KeyEvent e)
    			{
    				if (e.getKeyCode() != KeyEvent.VK_ENTER)
    				{							
    					txtParole.setEditable(true) ;					 
    				}
    				else
    				{
    					if (txtParole.getText().length() > 0)
    					{
    						System.out.println(txtParole.getText()) ;
    						txtParole.setText("") ;
    						txtParole.setEditable(false) ;
    					}
    				}
    			}
     
     
    		}) ;
    Merci quand meme de votre aide

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Par défaut
    Post résolu alors!!
    Bouton en bas à gauche de ton topic.

    Cest trés utile à ceux qui passent du temps pour répondre aux posts non résolus!!

    Nicolas.

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    Le problème est que quand tu intercepte une action clavier, si tu désire changer son comportement, tu ne doit pas ensuite laisser filer l'action.
    Celle-ci doit être consommée !!!

    consume

    public void consume()

    Consumes this event so that it will not be processed in the default manner by the source which originated it.

    Overrides:
    consume in class AWTEvent
    Donc, ajoute ceci et celà devrais correctement fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (txtParole.getText().length() > 0)
    {
       System.out.println(txtParole.getText()) ;
       txtParole.setText("") ;
       e.consume();
    }

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 69
    Par défaut
    Merci

    Je vais essayer ça ce soir, ça doit etre bien plus élégant que mon truc.

    Bonne journée

    gl0be

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

Discussions similaires

  1. Probleme dans un JTextArea
    Par issam_ovic dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 24/12/2009, 20h56
  2. [Débutant] Scrolls dans JTextArea
    Par k-reen dans le forum Composants
    Réponses: 2
    Dernier message: 30/06/2004, 17h14
  3. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 14h51
  4. Probleme dans une clause like !
    Par adil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 15/07/2003, 17h47
  5. Probleme dans ma requete
    Par Kuroro dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2003, 12h14

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