# Java problème avec un JTextArea



## HommeCocoa (20 Mai 2006)

Bonjour,

J'ai un petit soucis avec le JTextArea, voici déjà mon code


```
package pack;

import java.awt.*;

import javax.swing.*;


public class MaFenetre extends JFrame
{

	public JTextArea textArea;
	
	MaFenetre()
	{
		this.setTitle("Essai");
		this.setBounds(200,200,800,600);
		
		Container conPan = this.getContentPane();
		
		textArea = new JTextArea();
		
		textArea.setBounds(10,10,160,80);

		conPan.add(textArea);
		
		this.setVisible(true);
		
	}
	

}
```

pour ce qui est du main qui est dans la ClassePrincipale, je ne fais que créer un objet de type MaFenetre.

La fenêtre s'affiche correctement, mais le JTextArea occupe tout l'espace à la place de n'avoir que 160x80 comme dimension comme il devrait grace à la méthode setBounds.

Quelle erreur ai-je bien pu commettre?

Merci d'avance,
David


----------



## tatouille (20 Mai 2006)

HommeCocoa a dit:
			
		

> Bonjour,
> 
> J'ai un petit soucis avec le JTextArea, voici déjà mon code
> 
> ...




```
[B][URL="http://java.sun.com/j2se/1.3/docs/api/javax/swing/JTextArea.html#JTextArea%28java.lang.String,%20int,%20int%29"]JTextArea[/URL][/B]([URL="http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html"]String[/URL] text,           int rows,           int columns)
```
peut être en utilisant le nombre de column et de row
le setbounds étant un héritage awt

sinon 
constrain


----------



## HommeCocoa (20 Mai 2006)

Merci bien!
Effectivement en précisant la taille dans le constructeur ça marche nickel!

Bizarre que les méthodes héritées ne fonctionnent pas bien


----------



## GrandGibus (20 Mai 2006)

Je dirais plutôt que ça ne marche pas comme _tu le souhaiterais_... setBounds fonctionne très bien, mais le TextArea subit _les contraintes_ de son conteneur et du layout associé: JFrame et FlowLayout dans ton cas.

C'est aussi pour cela que le setBound est appliqué à la Frame.

Pour contraindre la taille de ton JTextArea (faut avoir de bonnes raisons), ce sont les méthodes :

setPreferredSize
setMinimumSize
setMaximumSize

Le moyen le plus élégant étant d'indiquer (quand on le sait) le nombre de lignes et de colonnes qu'on souhaite avoir (question de taille préférée), et sinon, de laisser le layout !


----------



## tatouille (22 Mai 2006)

HommeCocoa a dit:
			
		

> Merci bien!
> Effectivement en précisant la taille dans le constructeur ça marche nickel!
> 
> Bizarre que les méthodes héritées ne fonctionnent pas bien



pardon j'ai été mal compris mais grand gibus à répondu

 java.awt.Container.autolayout()

les

javax.swing.JComponent n'ont pas le même comportement

soit cela se réfère à toutes la fenêtre pour awt
soit au container qui le contient

c'est pour ça quand ont à des méthodes mixtes
il faut essayer d'utiliser les fonctions surdéfinies
quand tu utilises swing essaye de ne pas utiliser directement awt


----------



## HommeCocoa (22 Mai 2006)

Merci pour toutes vos réponses, je comprend donc mieux le comportement de la méthode setBounds() qui me semblait un peu aléatoire jusqu'alors!

:sleep:


----------

