GridBagLayout() ?

GridBagLayout() ? - Java - Programmation

Marsh Posté le 04-02-2003 à 21:29:20    

Salut
est ce kelk'un peu m'expliker commnet ça marche se Layout la?
ou alors si il existe un layout plus facile d'utilisation et aussi performant.
merci

Reply

Marsh Posté le 04-02-2003 à 21:29:20   

Reply

Marsh Posté le 04-02-2003 à 22:38:52    

LunatiK3 a écrit :

Salut
est ce kelk'un peu m'expliker commnet ça marche se Layout la?
ou alors si il existe un layout plus facile d'utilisation et aussi performant.
merci


en gros ce layout place les composants sur plusieurs lignes. tu associes pour chaque objet des contraintes (GridBagConstraints) pour définir la position, le poids en x, en y, ... (voir la classe GridBagConstraints). Au début, c'est assez chaud à utiliser, mais une fois que t'as capté, ca roule tout seul.
pour un autre layout, ca dépend de ce que tu veux faire (comment tu organises ce que tu veux mettre dedans)

Reply

Marsh Posté le 04-02-2003 à 22:44:55    

ok dc va falloir ke je plonge bien dedans, dc? qd faut y allez faut y allez. merci du renseignement. j'essayerai ça demain.

Reply

Marsh Posté le 04-02-2003 à 22:46:58    

si tu connais l'html et ces chères <table> tu devrais t'en sortir facilement... étant un ancien habitué des <table> de l'html, j'ai vite compris que ça se manipulait de la meme maniere, avec gridbagconstraint.gridwidth et gridbagconstraint.gridheight qui sont les equivalent des colspan et rowspan ;)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 04-02-2003 à 22:52:05    

pour ce layout, le mieux est de faire plein d'essais avec les différents paramètres sur les contraintes pour bien comprendre ce que chacun implique

Reply

Marsh Posté le 04-02-2003 à 22:53:18    

gloop a écrit :

pour ce layout, le mieux est de faire plein d'essais avec les différents paramètres sur les contraintes pour bien comprendre ce que chacun implique

pour ce layout, vaut mieux lire la doc avant d'essayer n'importe quoi :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 04-02-2003 à 23:10:38    

--greg-- a écrit :

pour ce layout, vaut mieux lire la doc avant d'essayer n'importe quoi :o


c ça le prob , la doc je la trouvait un peu obscure. dc c comme en html. bon je vais essayer.

Reply

Marsh Posté le 04-02-2003 à 23:25:54    

LunatiK3 a écrit :


c ça le prob , la doc je la trouvait un peu obscure. dc c comme en html. bon je vais essayer.

je te l'accorde, elle est obscure à premiere vue, mais si tu captes que ça marche comme les colspan et rowspan et que tu maitrises ça, apres c relativement simple et la doc devient plus comprehensible :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 04-02-2003 à 23:37:17    

ok je vai essayer ça.

Reply

Marsh Posté le 05-02-2003 à 01:20:47    

et c'est vachement puissant, avec ca tu peux faire un tableur avec fusions et des trucs comme ca.


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 05-02-2003 à 01:20:47   

Reply

Marsh Posté le 05-02-2003 à 01:48:50    

deltaden a écrit :

et c'est vachement puissant, avec ca tu peux faire un tableur avec fusions et des trucs comme ca.

:heink:  
si tu fais un jour un tableur en utilisant un gridbaglayour pour mettre en place les cellules tu me le montreras? [:dawa]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 05-02-2003 à 02:58:36    

--greg-- a écrit :

:heink:  
si tu fais un jour un tableur en utilisant un gridbaglayour pour mettre en place les cellules tu me le montreras? [:dawa]


c'est déjà fait:
 http://ece.fsa.ucl.ac.be/ddifilip/tableur.jpg  
 
ca marche très bien.
 
Voici la partie de code qui créé le conteneur des cellules:

Code :
  1. GridBagLayout gbl = new GridBagLayout();
  2. cellPanel.setLayout(gbl);
  3. GridBagConstraints gbc = new GridBagConstraints();
  4. gbc.fill = GridBagConstraints.BOTH;
  5. gbc.weightx = 1.0;
  6. for (int i=0; i <= gridSize.getHeight(); i++)
  7. {
  8. for (int j=0; j <= gridSize.getWidth(); j++)
  9. {
  10.   gbc.gridy=i;  gbc.gridx=j;
  11.   if (i == 0 || j == 0)
  12.   {
  13.    // c'est une bordure
  14.    BorderButton b = getBorderButton(i,j);
  15.    gbc.gridheight = 1;  gbc.gridwidth = 1;
  16.    gbl.setConstraints(b, gbc);
  17.    cellPanel.add(b);
  18.   }else
  19.   {
  20.    // c'est une cellule
  21.    Cell c = getCell(i,j);
  22.    // type empty si "en dessous" d'une cellule fusionnée (->pas affichée)
  23.    if (c.getType() != CellInterf.TYPE_EMPTY)
  24.    {
  25.     gbc.gridheight = c.getCellSize().x;
  26.     gbc.gridwidth = c.getCellSize().y;
  27.     gbl.setConstraints(c, gbc);
  28.     cellPanel.add(c);
  29.    }
  30.   }
  31. }

 
Ici, c'est un peu compliqué à cause de la distinction cellule-marge (je vais essayer de l'enlever mais ca pose d'autres problèmes). Sinon ce serait aussi simple que:

Code :
  1. GridBagLayout gbl = new GridBagLayout();
  2. cellPanel.setLayout(gbl);
  3. GridBagConstraints gbc = new GridBagConstraints();
  4. gbc.fill = GridBagConstraints.BOTH;
  5. gbc.weightx = 1.0;
  6. for (int i=0; i <= gridSize.getHeight(); i++)
  7. {
  8. for (int j=0; j <= gridSize.getWidth(); j++)
  9. {
  10.   gbc.gridy=i;  gbc.gridx=j;
  11.   Cell c = getCell(i,j);
  12.   if (c.getType() != CellInterf.TYPE_EMPTY)
  13.   {
  14.    gbc.gridheight = c.getCellSize().x;
  15.    gbc.gridwidth = c.getCellSize().y;
  16.    gbl.setConstraints(c, gbc);
  17.    cellPanel.add(c);
  18.   }
  19. }
  20. }


Message édité par deltaden le 05-02-2003 à 03:27:56

---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 05-02-2003 à 11:23:24    

:ouch:  
 
 
... tu sais qu'on peut faire ça avec jtable? :heink:
enfin je suis bluffé là; tu m'envoies le jar? :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 05-02-2003 à 13:50:11    

--greg-- a écrit :

:ouch:  
 
 
... tu sais qu'on peut faire ça avec jtable? :heink:
enfin je suis bluffé là; tu m'envoies le jar? :D
 


 
je sais, mais au départ, j'avais pas trouvé comment on peut faire des fusions de cellules et autres avec jtable.
Et puis j'avais besoin de bien controler la structure du tableau car il s'agit d'un applet qui import/export des <table> html et permet de les éditer à la manière WYSIWYG.
 
pour le jar, tu me paye combien ?  :D


Message édité par deltaden le 05-02-2003 à 13:52:11

---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 05-02-2003 à 13:59:08    

LunatiK3 a écrit :

Salut
est ce kelk'un peu m'expliker commnet ça marche se Layout la?
ou alors si il existe un layout plus facile d'utilisation et aussi performant.
merci


 
Si tu veux juste mettre deux boutons et une zone de texte, le gridbaglayout, c'est quand même un peu lourd. Il y en a d'autre plus léger et plus simple qui peuvent te convenir aussi bien si pas plus.


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 05-02-2003 à 14:00:18    

deltaden a écrit :


 
je sais, mais au départ, j'avais pas trouvé comment on peut faire des fusions de cellules et autres avec jtable.
Et puis j'avais besoin de bien controler la structure du tableau car il s'agit d'un applet qui import/export des <table> html et permet de les éditer à la manière WYSIWYG.
 
pour le jar, tu me paye combien ?  :D

ben si c une applet, une url me conviendra aussi bien, j'aurais voulu voir ça tourner quoi paske bon :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 05-02-2003 à 16:48:45    

--greg-- a écrit :

ben si c une applet, une url me conviendra aussi bien, j'aurais voulu voir ça tourner quoi paske bon :o


va voir tes PM


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 05-02-2003 à 20:10:18    

deltaden a écrit :


 
Si tu veux juste mettre deux boutons et une zone de texte, le gridbaglayout, c'est quand même un peu lourd. Il y en a d'autre plus léger et plus simple qui peuvent te convenir aussi bien si pas plus.


 
c pour plus ke deux bouton et une zone de texte. c pour ça ke je voudrait voir comment ça marche. merci de voir explication. je vais essayer ça prochainement.

Reply

Marsh Posté le 05-02-2003 à 20:19:46    

le GridBagLayout, c'est très puissant, mais parfois ça merde un peu : les poids, j'ai jamais compris pourquoi parfois c'est pris en compte, et parfois pas.
Par ailleurs, j'ai déja eu des GridbagLayout qui se comportaient différemment d'après les plateformes


---------------
http://runnerstats.net
Reply

Marsh Posté le 05-02-2003 à 21:40:21    

noldor a écrit :

le GridBagLayout, c'est très puissant, mais parfois ça merde un peu : les poids, j'ai jamais compris pourquoi parfois c'est pris en compte, et parfois pas.
Par ailleurs, j'ai déja eu des GridbagLayout qui se comportaient différemment d'après les plateformes

plateforme ou look'n'feel?


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 08-02-2003 à 15:00:37    

--greg-- a écrit :

plateforme ou look'n'feel?

plateforme  
Genre ça s'affiche impec sous win et linux, ça merde sur un Mac


---------------
http://runnerstats.net
Reply

Marsh Posté le 08-02-2003 à 15:05:08    

[:gratgrat]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 08-02-2003 à 15:32:12    

ben oui
les layouts se comportent souvent un peu différemment d'une plateforme à l'autre. Des problèmes qui n'existent pas sur la plateforme X apparaissent sur une plateforme Y ou Z


---------------
http://runnerstats.net
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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