2010-12-02 4 views
1

Pour une application de messagerie, j'utilise un JTextArea pour saisir plusieurs lignes. Mais après avoir regardé la documentation je vois qu'il n'y a aucun gestionnaire d'événement d'action pour ceci.Comment utiliser entrer au lieu d'un bouton JTextArea?

Comment puis-je entrer du texte et quand j'appuie sur ENTER, il apparaît dans une autre zone de texte? Je souhaite utiliser aucun bouton pour cela

Cordialement.

+0

Quelque chose pour considération: Vous avez un conflit dans vos exigences. D'une part, vous voulez être capable de taper plusieurs lignes, OTOH, vous voulez entrer pour faire un envoi. Donc, si ENTRÉE doit envoyer votre message à envoyer, comment allez-vous créer une nouvelle ligne dans votre zone de texte, d'une manière qui ne surprend pas l'utilisateur? –

Répondre

0

Avez-vous essayé de connecter un écouteur à un événement de changement de clé déclenché par ce contrôle? Je pense que cela devrait fonctionner

4

L'action par défaut lorsque vous utilisez la touche Entrée est d'ajouter une chaîne "nouvelle ligne" au document. Si vous n'aimez pas ce comportement, vous devez remplacer cette action par votre propre action personnalisée.

Lisez sur Key Bindings pour voir comment vous pourriez le faire.

0

// JTextArea txASend
// // JTextArea txAReceive ajouter l'événement "keyTyped" à txASend

private void txASendKeyTyped (java.awt.event.KeyEvent EVT) {

char c = evt.getKeyChar(); 
    if(c == KeyEvent.VK_ENTER) 
    { 
     String msj = txASend.getText(); 
     txAReceive.setText(msj); 
    } 

} 
Questions connexes