# Java > Interfaces Graphiques en Java > AWT/Swing >  SetBound sur Jpanel et ajout d'un Bouton

## BoBy9

Bonjour,

Voil, j'ai crer une fenetre qui contient une Jpanel_Num1 qui possede un layout NULL.

Ceci pour pouvoir placer mes composants avec setBounds.

Dans ce Jpanel_Num1, j'y ai mis un autre Jpanel_Num2 avec un GridLayout(5,5) et plac avec setBound

Dans ce jpanel_Num2, j'ai voulut ajouter un Bouton, mais malheureusement le bouton ne s'affiche  pas ! 


```

```


le panel2 s'affiche, mais pas le bouton  l'interrieur...
Pour reussir  afficher le bouton, j'ai du fair un setBounds dessus, pou le placer dans le jpanel.....

Est-ce que c'est possible, d'ajouter des boutons sans les positionner manuellement ?


merci

----------


## anisj1m

un conseil, n'utilise pas le layout null car il peut causer beaucoup de problme

----------


## BoBy9

Ba en faite, je suis un peut oblig, car je doit placer mes Jpanel  diffrent endroit assez bizzard.

----------


## fluff

Tu peux aussi crer un panel avec GridLayout(x, x) et en ajouter un peu ou tu veux avec des x_axis et y_axis (avec la bonne syntaxe)

Mais par contre ton this.add(panel2) il sert  quoi?

----------


## BoBy9

je me suis tromp c'est panel1.add(panel2) et pas this..

 ::P: 




> Tu peux aussi crer un panel avec GridLayout(x, x) et en ajouter un peu ou tu veux avec des x_axis et y_axis (avec la bonne syntaxe)


nan j'ai aps envie de defenir les x et y des boutons, j'aimerai que ca soit le gridLayout qui gere ca.

par contre ems Jpanel, la oui j'ai besoin de les setBound (a ca marche=

----------


## gifffftane

Le problme du layout null est qu'il interrompt la gestion du layout, justement. Cette gestion est un enchanement de panneaux imbriqus en panneaux imbriqus, ordonne par les layouts. Un niveau d'imbrication sans layout signifie l'interruption de la gestion  ce niveau d'imbrication, et il faut se taper toute la gestion des sous-niveaux. Il faut que tu fasses toi mme les packs, validate, etc, sur les JPanels qui reprennent des layouts non nuls *aux moments opportuns*.

Enfin bon, les IHM tellement spcifiques que aucun layout ne leur convient...  se croire spcial, souvent on ne fait que ramer. Mais au moins c'est formateur et a donne du muscle  :;):

----------


## BoBy9

Merci de vos rponses !




> Il faut que tu fasses toi mme les packs, validate, etc, sur les JPanels qui reprennent des layouts non nuls aux moments opportuns.


Je ne comprend pas trop comment faire ceci ?



je suis en train de travailer sur un tablette tactile, et je demande  l'utilisateur de toucher une zone de la tablette pour position le menu la o il le souhaite.
C'est pour cela que j'ai besoin de positioner mon Jpanel.

----------


## tchize_

Si t'as des positionnement 'bizzare', utilise le springlayout, il est le plus flexible. Tu prcise pour chaque composant ses coordones par rapports  d'autre composants (et donc  ce titre  peut aussi se comporter comme un null layout si tu fait des positionnement relatifs au parent).

Ensuite, pour ton gridbaglayout, quant tu fait un add(button), tu dois en fait faire add(button,gbc) avec gbc un gridbagconstraint qui donne les informations sur la position de l'vnbement. Pour plus de dtails, voir les tutoriels de sun sur les layout.

Au fait, dans 99.99 % des cas, le null layout c'est du n'importe quoi parce qu'on a pas t foutu d'utiliser proprement els layout existant et  ne fait qu'empirer les chose (fenetres qui ne se redimensionnent pas correctement, affichage foireux sur les machines o les fontes sont plus grosses, etc)

----------


## gifffftane

Si c'est un menu popup alors il faut utiliser un JLayeredPane en plaant le popup au niveau POPUP_LAYER.

Tu vois, tout est prvu  ::lol::  ... mais peut tre un peu moins vident au premier abord que le layout null ; lit bien la doc, c'est obligatoire.

----------


## BoBy9

Ah, ouais.

JLayredPane, je connaisait pas  ::oops:: .

merci, je vais essayer a.

----------

