# Java > Interfaces Graphiques en Java > AWT/Swing >  TextArea: ajouter un texte l ou il y a le curseur

## Terminator

bonjour (ou re)

j'ai un textArea et un bouton. Je souhaite, lorsque je click sur le bouton, ajouter un certain String  l'emplacement sur cerseur. Par la suite, je soiuhaite reprendre le focus sur ce textArea  l'endoit du cerseur (cd  la fin du mot que je vien de rajouter).

MERCI

----------


## Terminator

J'ai essay de recupere la ligne et le nombre de caractere, mais c'est pas possible.

Personne ne voit une soluce plus simple??

MERCI

----------


## bouye

Si tu utilises une _JTextArea_ (Swing donc), tu peux faire cela en faisant :



```

```

Attention cette methode est succeptible de lever une _BadLocationException_.

Pour une _TextArea_ (AWT), tu peux toujours utiliser _getCaretPosition()_ et tu as la methode _insert(String str, int pos)_.

Pour un _Button_ ou un _JButton_ je crains que cela ne te demander de calculer la taille en pixels de ta chaine pour arriver a determiner l'emplacement du caret/curseur.

----------


## Terminator

au fait, je crois que la fin de ton msg ya malentente...enfin je crois.

Je rexplique:

j'ai un textArea et en bas un bouton. lorsque l'utilisateur tape sur le bouton, un String est mis en memoire avec une valeur constante (appellons la "texte  ajouter")
Donc qd l'utilisateur appuie sur le bouton, on ajouter "texte  ajouter" au textArea  la place du curseur. Le curseur doit alors se mettre  la fin de cette phrase et on redonne tout de suite le focus sur cette textArea.

Prenons un exemple concret:

voici le texte tap sur le texte area (le  est la position du curseur):



```

```

Lorsque l'utilisateur appuis sur le bouton, le textArea devient:



```

```

Voila...j'espere etre un peu plus clair. J'espere que vous pourrez m'aider!!
D'avance merci.

----------


## bouye

Ok je pensais que tu voulais egalement modifier le texte du bouton.

Comme je t'ai indique : il te faut utiliser la position du caret, le curseur clignotant a l'endroit ou le texte doit etre insere, pour inserer (les methodes ont ete donnees dans le courier precedent) au bon endroit (_area.getCaretPosition()_). Une fois le texte insere, tu peux toi-meme deplacer le caret a l'endroit approprie (_area.setCaretPosition(oldCaretPosition + s.length())_).

----------


## Terminator

J'ai trouv, voici la solution pour ceux qui veulent (en esperant aider les gens plus tard):

//c'est la chaine de caractere qu'on veut inserer, ici  elle provient d'une liste
res= (String) listeMotsCles.getSelectedValue();
//On prend la position courante du curseur sur le textArea
int position = textArea.getCaretPosition();
//On insere simplement le text. 
textArea.insert(res,position);
//on reprend le focus sur le textArea. La position du curseur se met  la fin //du mot insr
textArea.requestFocus();

----------

