[Java] GUI, swing, layout etc

GUI, swing, layout etc [Java] - Java - Programmation

Marsh Posté le 30-05-2002 à 04:52:41    

bonjour a tous
 
je dois faire une GUI en java et je n arrive pas a positionner des controle comme je veux et ou je veux dans ma fenetre. Parce que je GridLayout c bien joli mais c pas tres flexible.
De plus g pas JBuilder donc je peux pas utiliser le xylayout (oui je sais, c tres mal d utiliser ca)
 
kkun c comment faire parce que lq cq me reloute a mort.
 
merci de votre aide

Reply

Marsh Posté le 30-05-2002 à 04:52:41   

Reply

Marsh Posté le 30-05-2002 à 08:35:06    

bah, utilise d'autres layouts!!  
Y'en a normalement suffisamment pour faire à peu près ce qu'on veut (GridLayout, FlowLayout, BorderLayout, BoxLayout, CardLayout, OverlayLayout) Et ça, ce ne sont que les plus simples.. En plus, tu as le GridBagLayout et le SpringLayout, qui marchent avec des contraintes : ils sont plus puissants, mais plus complexes à utiliser....
 
Mais dans un premier temps, tu peux normalement faire des choses très correctes en combinant bien des BorderLayout et des FlowLayout...

Reply

Marsh Posté le 30-05-2002 à 08:37:31    

ouep : border, floaw et grid, c'est déjà bien.
 
d'ailleurs gfive, il en est où mon FrameLayout ??? :D


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-05-2002 à 08:54:04    

:cry: :cry: Ouais, je sais, faut que je m'y mette!! :D:D

Reply

Marsh Posté le 30-05-2002 à 09:05:32    

mais ce qui est super relou c que pqr exmple pour un textfiels, il va le mettre automatiquement a la taille de la case et c vraiment degueu.
a mon avis je loupe un detail

Reply

Marsh Posté le 30-05-2002 à 09:08:40    

:cry: :cry: bouhohuohu je veux juste aligner des labels et des textfields. mais pourquoi le java est il aussi mechant ? :cry: :cry:

Reply

Marsh Posté le 30-05-2002 à 09:27:58    

bah...Lis la doc du GridLayout : c'est son boulot, de faire ça!!  
Si tu veux les aligner, sans qu'ils prennent toute la place, tu as plusieurs solutions :  
 
1 - Gros bourrin : tu met chaque Label et chaque TextField dans un Panel, géré par un FlowLayout, et tu met tes panels dans le GridLayout....
 
2 - raffiné : tu utilises un GridBagLayout

Reply

Marsh Posté le 30-05-2002 à 09:31:44    

ouai j ai commence a faire le 1 en fait :D

Reply

Marsh Posté le 30-05-2002 à 09:32:34    

Ouais, GridBagLayout c'est la meilleure soluce : c'est comme un Grid, mas ca autorise tes composants à depasser sur la case d'à coté. Et sion cherche un peu, c'est vraiment pas compliqué à utiliser. http://java.sun.com/books/tutorial : c'est là que j'ai appris le swing

Reply

Marsh Posté le 30-05-2002 à 09:51:53    

Ouais, enfin, vraiment pas compliqué à utiliser,je dirais pas ça...Disons que ça demande une bonne période de rodage, quand même.... Et ça autorise pas seulement les composants à dépasser sur la case d'à côté, mais aussi à avoir des cases qui prennent plusieurs lignes ou plusieurs colonnes, à caler les composants d'un côté ou de l'autre, à gérer le comportement en cas de redimensionnement, etc, etc; etc....

Reply

Marsh Posté le 30-05-2002 à 09:51:53   

Reply

Marsh Posté le 30-05-2002 à 10:13:06    

franchement j ai beau faire des efforts, je comprend pas vraiment l interet de tous ces layout. pkoi ne pas simplement positionner et sizer tous les controles avec des coordonnees, c quand meme vachement plus simple.
 
enfin bon l experience m a appris que en java, quand ya 10 methodes pour resoudre un pb, c toujours la plus compliquee kon utilise

Reply

Marsh Posté le 30-05-2002 à 10:15:23    

bah, parce que les Layouts te permettent de ne pas te prendre la tête, justement!! Parce que définir la taille et la position de tes composants (ce que tu peux faire, hein, avec setSize(...) et setLocation(..) implique que :
1 - Tu connais à l'avance la taille de tes composants...Or, pour un langage multi plate-formes, le problème des polices de caractères de tailles différentes rend la chose presque impossible,
2 - Ta fenêtre ne change jamais de forme ni de taille...
 
Voilà voilà!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed