# Java > Interfaces Graphiques en Java > AWT/Swing >  Comment afficher du texte dans un JPanel (ex:chat)

## remooz

Pour un projet nous devons raliser une bataille navale avec un chat. Mais nous n'arrivons pas  inscrire le texte du chat dans un Jpanel.
En fait nous voulons afficher le texte sans effacer le texte prcdent.
Si quelqu'un  des ides ou des solutions, merci de nous les communiquer.

----------


## Baptiste Wicht

Le JPanel est un container, non pas un composant de texte, pour ce que tu veut faire, il te faudra un JTextArea, voire un JTextPane si tu veut jouer sur les couleurs et les styles  :;):  

En plus, avec un JTextArea, tu as la mthode append, qui est trs simple  utiliser pour un petit chat.

----------


## remooz

Merci de m'avoir rpondu.
Par contre j'ai une autre question:
Comment donner une position prcise au JTextArea dans une interface graphique ?
Merci

----------


## Baptiste Wicht

Soit tu utilises un layout et l ben tu gres en fonction de celui-ci, soit tu utilises un positionnement absolu, donc tu emploies la mthode setBounds(x,y,width,height). C'est pas diffrent d'un autre composant.

----------


## remooz

Aurais-tu un exemple avec la mthode SetBounds. Nous avons dj essayer avec celle-ci mais nous n'y somme pas arrivs.
Merci

----------


## afrikha

Je te conseille vivement d'utiliser les layouts. Non seulement tu peux placer tes composants *exactement* o tu veux mais en plus ils grent *automatiquement* les positions de tes composants en cas de redimensionnement de la fentre.

----------


## remooz

Si vous pouviez me donner un exemple tout simple, a serait super.
Merci.

----------


## afrikha

Le tutoriel de Sun est bien fait.
Si tu n'es pas trs  l'aise avec l'anglais voici un autre lien en franais avec beaucoup d'exemples de code.

----------


## remooz

Merci pour le lien, je vais tudier tout a.

----------


## remooz

Dans la javadoc, j'ai t me renseigner sur la mthode append mais je ne comprend pas comment l'utiliser.

----------


## Baptiste Wicht

> Dans la javadoc, j'ai t me renseigner sur la mthode append mais je ne comprend pas comment l'utiliser.


Je vois pas ou la difficult avec cette mthode...

Elle te permet d'ajouter un texte  la fin de ton JTextArea. Il te suffit de faire : 



```
tonArea.append(tonTexteAMettreALaFin);
```

----------


## remooz

Voicic mon code :



```

```

J'ai une erreur avec append : _The method append(String) is undefined for the type JTextArea_

----------


## afrikha

Pourtant dans la javadoc elle y est.
Quesque tu utilises comme jdk celui de Sun ? quelle version ? ou bien GCJ ?
Pour le savoir tape:



```
java --version
```

----------


## remooz

```
jdk1.5.0_06
```

----------


## afrikha

En fait ta classe se nomme JTextArea, or cette classe existe dans le jdk: change le nom. Tu voulais peut-tre tendre JTextArea et non JFrame dans ce cas tu peux faire:



```
public class MonTextArea extends JTextArea
```

de plus tu dois mettre *this*.append(monTexte);

----------


## Baptiste Wicht

> Voicic mon code :
> 
> 
> 
> ```
> 
> ```
> 
> J'ai une erreur avec append : _The method append(String) is undefined for the type JTextArea_


L je comprends vraiment pas ce que tu essaie de faire...

Tu cre une classe JTextArea alors qu'elle existe dja et en plus tu la fait tendre JFrame...

Ensuite la mthode append n'est pas statique et comme tu l'invoques sur JTextArea, ca va l'invoquer sur ta classe et il est sur que cette mthode n'existe pas pour une JFrame.

Je te conseille de plutot commencer par un bon livre de java ou alors de plus rflchier sur le code...

----------


## remooz

D'accord je vais essayer, merci.

----------


## remooz

> L je comprends vraiment pas ce que tu essaie de faire...
> 
> Tu cre une classe JTextArea alors qu'elle existe dja et en plus tu la fait tendre JFrame...
> 
> Ensuite la mthode append n'est pas statique et comme tu l'invoques sur JTextArea, ca va l'invoquer sur ta classe et il est sur que cette mthode n'existe pas pour une JFrame.


J'ai cr ce JTextArea  l'aide de Visual Editor, le plugin d'interface graphique d'Eclipse.

----------


## Baptiste Wicht

> J'ai cr ce JTextArea  l'aide de Visual Editor, le plugin d'interface graphique d'Eclipse.


Ben justement, il ne faut pas crer une nouvelle classe, il s'agit d'employer une existante et d'exploiter ses possibilits. Donc soit tu fais une classe extends JTextArea soit tu ajoutes dans ta fentre un objet de type JTextArea.

----------


## remooz

Pour utiliser les mhodes setText et setVisible, je suis oblig de faire extends JFrame sinon il me met une erreur.

----------


## remooz

```

```

De cette manire, il y a toujours une erreur avec la mthode _append_

----------


## Baptiste Wicht

Il faut que tu fasses quelque chose comme ca : 



```

```

----------


## remooz

J'ai copier/coller ce code et l'erreur sur _append_ existe toujours.

----------


## sinok

Normal ta classe JTextArea ne correspond  rien...
Premirement elle repred le nom d'une classe dja existante dans java => conflit

Deuximement elle n'tend pas JTextArea (l'originale donc n'hrite ni de ses mthodes ni de ses attributs)

De la faon suivante a ira mieux


```

```

----------


## remooz

Merci wichtounet, ton code fonctionne trs bien.

----------

