IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

[GridBagLayout] Colonne en trop ? et conception


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 52
    Points
    52
    Par défaut [GridBagLayout] Colonne en trop ? et conception
    Bonjour,

    Je débute avec swing et le GridBagLayout. J'ai un petit soucis (je penses de compréhension je penses) avec mon layout.

    Voila ce que je j'obtiens.

    Nom : RandomBugGraph.jpg
Affichages : 7338
Taille : 34,9 Ko


    Normalement si j'ai tout bien compris je devrais avoir la partie rose qui est équivalente a la grise. Mais ce n'est pas le cas.
    Voici un peu mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    package vue;
     
     
    import java.awt.Color;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
     
     
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
     
     
     
    public class FenetreTest extends JFrame{
     
    	private JLabel lblComboBox;
    	private JComboBox<String> cboListeChoix;
    	private String[] Liste= {"Cdi1","Cdi2","Cdi3","Cdi4"};
    	private JButton cmdToutCocher;
    	private JButton cmdToutDecocher;
    	private JButton cmdRandom;
    	private JButton cmdRandom2;
     
    	public FenetreTest(String titre,int largeur,int hauteur){
    		setTitle(titre);
    		setSize(largeur, hauteur);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setLayout(new GridBagLayout());
    		initComposants();
    		setVisible(true);
    	}
    	public void initComposants() {
     
    		GridBagConstraints gbc= new GridBagConstraints();
    		//*******Label description ComboBox******
    		gbc.gridx= gbc.gridy =0;
    		gbc.gridheight=gbc.gridheight=1;
    		lblComboBox=new JLabel();
    		lblComboBox.setText("Classe :");
    		add(lblComboBox,gbc);
    		//******fin LblComboBox******
     
     
     
    		//*********ComboBox*******
    		gbc.gridx=1;
    		cboListeChoix= new JComboBox<>();
    		cboListeChoix.setEditable(false);
     
    		for  (String indexListe : Liste) {
    			cboListeChoix.addItem(indexListe);
    		}
    		add(cboListeChoix,gbc);
    		//******FinComboBox*******
     
    		//******Bouton Tout Cocher****
    		gbc.gridx=3;
    		cmdToutCocher=new JButton();
    		cmdToutCocher.setText("Tout cocher");
    		add(cmdToutCocher,gbc);
    		//******Fin tout cocher******
     
    		//******Bouton tout decocher******
    		gbc.gridx=4;
    		//gbc.gridwidth=GridBagConstraints.REMAINDER;
    		cmdToutDecocher=new JButton();
    		cmdToutDecocher.setText("Tout decocher");
    		add(cmdToutDecocher,gbc);
    		//******Fin tout decocher******
     
     
    		//******Panneau rose******
    		gbc.gridy=1;
    		gbc.gridx=0;
    		gbc.gridheight=5;
    		gbc.gridwidth=3;
    		gbc.weightx = 1;
    		gbc.weighty = 1;
    		gbc.fill=GridBagConstraints.BOTH;
    		add(new PanResultat(),gbc);
    		//******fin Panneau rose******
     
    		//******Panneau gris******
    		gbc.gridx=3;
    		//gbc.gridwidth=GridBagConstraints.REMAINDER;
    		gbc.gridwidth=2;
    		PanResultat panResultat=new PanResultat();
    		panResultat.setBackground(new Color(100,100,100));
    		add(panResultat,gbc);
    		//******fin Panneau gris******
     
    		gbc.weightx = 0;
    		gbc.weighty = 0;
    		gbc.fill=GridBagConstraints.NONE;
    		//******Bouton Random****
    		gbc.gridy=7;
    		gbc.gridheight=1;
    		gbc.gridwidth=1;
    		cmdRandom=new JButton();
    		cmdRandom.setText("Tout cocher");
    		add(cmdRandom,gbc);
    		//******Fin tout cocher******
     
    		//******Bouton Random****
    		gbc.gridx=4;
    		gbc.gridwidth=1;
    		cmdRandom2=new JButton();
    		cmdRandom2.setText("Tout cocher");
    		add(cmdRandom2,gbc);
    		//******Fin tout cocher******
     
     
    	}
     
    }
    Voici le code pour le Jpanel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package vue;
     
    import java.awt.Color;
     
    import javax.swing.BoxLayout;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class PanResultat extends JPanel {
     
    	public PanResultat() {
     
    		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
    		JLabel l1= new JLabel("Label1");
    		JLabel l2= new JLabel("Label2");
    		JLabel l3= new JLabel("Label3");
    		setSize(400,200);
    		add(l1);
    		add(l2);
    		add(l3);
    		setBackground(new Color(255, 0, 150));
    	}
     
    }

    Au niveau de la conception devrais je passer par un Jpanel pour les boutons du bas et du haut car je n'ai pas le même nombres d’éléments sur chaque ligne de GridBagLayout.

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    La colonne rose à pour gridwidth 3 et la grise 2. gridwidth c'est comme colspan en html, donc la colonne rose s'étend sur 3 colonnes et la grise sur 2. Ensuite les largeurs de colonnes sont déterminées par différentes choses. Pour les composants en fill, weightx va servir à la répartition : ici, les colonnes vont se partager la même part de la largeur complète, à 50% donc. Mais les
    5 autres colonnes vont être de la largeur de leur contenu (leur preferredsize en l'occurence). La répartition à 50/50 n'aura donc pas l'effet escompté, parce que ça va être contraint en même temps par la répartition des autres colonnes.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 52
    Points
    52
    Par défaut
    Merci pour la réponse rapide.
    Donc une des solutions serait de faire deux JPanel qui sont contenu dans un JPanel qui serait mis dans ma JFrame ???

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Oui, c'est le plus simple à mon avis.

    Un autre moyen serait de mettre un horizontal strut dans la colonne 2, ça devrait fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    		//*********ComboBox*******
    		gbc.gridx=1;
    		cboListeChoix= new JComboBox<>();
    		cboListeChoix.setEditable(false);
    		
     
    		for  (String indexListe : Liste) {
    			cboListeChoix.addItem(indexListe);
    		}
    		add(cboListeChoix,gbc);
    		//******FinComboBox*******
    		gbc.insets = new Insets(0, 0, 0, 0);
    		
    
    		gbc.gridx=2;
    		add(Box.createHorizontalStrut(106),gbc); // 106 = (largeur total des boutons/2)*3-largeur total label+combo
    
     
    		//******Bouton Tout Cocher****
    		gbc.gridx=3;
    		cmdToutCocher=new JButton();
    		cmdToutCocher.setText("Tout cocher");
    		add(cmdToutCocher,gbc);
    		//******Fin tout cocher******
    il faut peut-être ajuster la largeur du strut, à cause des insets de bordures, entre 100 et 140. Essaye 120 par exemple. Il ne doit pas être trop grand pour ne pas pousser la colonne "grise" vers la droite

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup pour la réponse.
    Je regarde pour le horizontal strut mais si j'ai bien compris c'est un composant invisible c'est cela ? Mais cela ne pose t'il pas de soucis au niveau de la "propreté" du code ?
    Pour définir sa taille il est préférable de passer par un calcul avec des getSize des composants non ? au cas ou on l'on ferait varier a un moment la taille des boutons.

    Bon avec un JPanel supplémentaire cela me donne.

    Nom : RandomV2.jpg
Affichages : 340
Taille : 32,3 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    package vue;
     
     
    import java.awt.Color;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
     
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
     
    public class FenetreTest extends JFrame{
     
    	private JLabel lblComboBox;
    	private JComboBox<String> cboListeChoix;
    	private String[] Liste= {"Cdi1","Cdi2","Cdi3","Cdi4"};
    	private JButton cmdToutCocher;
    	private JButton cmdToutDecocher;
    	private JButton cmdRandom;
    	private JButton cmdRandom2;
     
    	public FenetreTest(String titre,int largeur,int hauteur){
    		setTitle(titre);
    		setSize(largeur, hauteur);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setLayout(new GridBagLayout());
    		initComposants();
    		setVisible(true);
    	}
    	public void initComposants() {
     
    		GridBagConstraints gbc= new GridBagConstraints();
    		//*******Label description ComboBox******
    		gbc.gridx= gbc.gridy =0;
    		gbc.gridheight=gbc.gridheight=1;
    		lblComboBox=new JLabel();
    		lblComboBox.setText("Classe :");
    		add(lblComboBox,gbc);
    		//******fin LblComboBox******
     
     
     
    		//*********ComboBox*******
    		gbc.gridx=1;
    		cboListeChoix= new JComboBox<>();
    		cboListeChoix.setEditable(false);
     
    		for  (String indexListe : Liste) {
    			cboListeChoix.addItem(indexListe);
    		}
    		add(cboListeChoix,gbc);
    		//******FinComboBox*******
     
    		//******Bouton Tout Cocher****
    		gbc.gridx=3;
    		cmdToutCocher=new JButton();
    		cmdToutCocher.setText("Tout cocher");
    		add(cmdToutCocher,gbc);
    		//******Fin tout cocher******
     
    		//******Bouton tout decocher******
    		gbc.gridx=4;
    		//gbc.gridwidth=GridBagConstraints.REMAINDER;
    		cmdToutDecocher=new JButton();
    		cmdToutDecocher.setText("Tout decocher");
    		add(cmdToutDecocher,gbc);
    		//******Fin tout decocher******
     
     
    		JPanel panMilieu=new JPanel();
    		panMilieu.add(new PanResultat());
    		panMilieu.add(new PanResultat());
     
    		panMilieu.setBackground(new Color(200, 100, 40));
    		gbc.gridy=1;
    		gbc.gridx=0;
    		gbc.gridheight=5;
    		gbc.gridwidth=5;
    		gbc.weightx = 1;
    		gbc.weighty = 1;
    		gbc.fill=GridBagConstraints.BOTH;
     
    		add(panMilieu, gbc);
     
     
     
    		gbc.insets=new Insets(10, 0,0, 0);
    		gbc.weightx = 0;
    		gbc.weighty = 0;
    		gbc.fill=GridBagConstraints.NONE;
    		//******Bouton Random****
    		gbc.gridy=7;
    		gbc.gridx=3;
    		gbc.gridheight=1;
    		gbc.gridwidth=1;
    		cmdRandom=new JButton();
    		cmdRandom.setText("Random");
    		add(cmdRandom,gbc);
    		//******Fin tout cocher******
     
    		//******Bouton Random****
    		gbc.gridx=4;
    		gbc.gridwidth=1;
    		cmdRandom2=new JButton();
    		cmdRandom2.setText("Group");
    		add(cmdRandom2,gbc);
    		//******Fin tout cocher******
     
     
    	}
     
    }
    la j'ai pas chercher a faire propre mais plus que cela marche :p.
    L'écart plus important entre les boutons "Tout cocher" et "Tout decocher" (la même chose avec Random et group) est du a la gestion interne du GridBagLayout c'est bien cela ?
    Par contre pour mes Panneaux résultat je ne comprend pas pourquoi il ne me prend pas en compte mon setSize

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package vue;
     
    import java.awt.Color;
     
    import javax.swing.BoxLayout;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class PanResultat extends JPanel {
     
    	public PanResultat() {
     
    		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
    		JLabel l1= new JLabel("Label1");
    		JLabel l2= new JLabel("Label2");
    		JLabel l3= new JLabel("Label3");
    		setSize(700,500);
    		add(l1);
    		add(l2);
    		add(l3);
    		setBackground(new Color(255, 0, 150));
    	}
     
    }
    Désolé pour les nombreuses question mais j'essaie de bien comprendre le fonctionnement de tout cela ..j'ai toujours eux des difficultés avec les interface graphique.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par l ours blanc Voir le message
    Je regarde pour le horizontal strut mais si j'ai bien compris c'est un composant invisible c'est cela ? Mais cela ne pose t'il pas de soucis au niveau de la "propreté" du code ?
    Pour définir sa taille il est préférable de passer par un calcul avec des getSize des composants non ? au cas ou on l'on ferait varier a un moment la taille des boutons.
    C'est sûr que c'est un peu de la bricole et que ça peut devenir un peu usine à gaz si on veut que ça marche dans le cas général.


    Pour le reste, tout bien considéré, ce n'est pas si simple, parce que même en descendant les composants de header/footer dans un sous panel, ils imposent leur taille préférentielle et minimum au panel, donc au gridbaglayout. Et il n'y a pas de type de fill qui pourrait ignorer la minimum size sans redimensionner (un type overflow).
    Peut-être un SpringLayout t'aidera t-il, ou un GroupLayout. Sinon, un layout personnalisé. Le FormLayout de JGoodies peut-être aussi.
    Enfin, dernière solution, ne pas procéder par layout : une JTable pourrait peut-être faire l'affaire également.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup pour ta réponse.
    La solution avec le strut marche très bien et merci pour l'astuce.


    C'est bien ce que je pensais c'est le bazar avec les Layout .
    Mais il a des choses que je n'ai pas du bien comprendre ou je n'ai pas encore la bonne gymnastique.

    Car la j essaie de faire bouger mes deux JPanel en rose en haut a gauche du mon JPanel marron et qu'ils prennent toute la place ... mais pour le moment je ne suis arrivé a rien de valable :p.
    Je penses que je n'ai pas fini de me couper les cheveux en 4 :p . Et de centrer mes labels dans les JPanel rose.

    Encore merci pour ton aide je vais voir un peu du côté de tout les layouts que tu m'as fournis.


    Alors je ne sais pas ou se situe le problème mais impossible d'aligner mes Labels au centre de mon JPanel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    package vue;
     
    import java.awt.Color;
    import java.awt.Component;
     
    import javax.swing.BoxLayout;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class PanResultat extends JPanel {
     
    	public PanResultat() {
     
    		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
     
    		JLabel l1= new JLabel("Label1");
    		JLabel l2= new JLabel("Label2");
    		JLabel l3= new JLabel("Label3");
    		l1.setOpaque(true);
    		l1.setBackground(new Color(200, 200, 200));
    		setAlignmentX(Component.CENTER_ALIGNMENT);
    		//setAlignmentY(Component.CENTER_ALIGNMENT);
    		//setSize(700,500);
    		add(l1);
    		add(l2);
    		add(l3);
    		//setBackground(new Color(255, 0, 150));
    	}
     
    }
    D'ailleurs il ne devrait pas les centrer automatiquement ??

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par l ours blanc Voir le message

    C'est bien ce que je pensais c'est le bazar avec les Layout .
    Disons par expérience qu'il faut
    faire un croquis sur papier de ton ui pour bien voir comment la découper en layout.
    Utiliser les layout pour ce qu'ils sont destiné: gridbag pour une grille irrégulière.
    Combiner les layout entre eux: un flowlayout pour un block de bouton, une grille pour les données, un Springlayout pour les trucs tordus avec position relative entre éléments, un formlayout pour les formulaire, un BorderLayout pour les header/footer, etc.


    Alors je ne sais pas ou se situe le problème mais impossible d'aligner mes Labels au centre de mon JPanel.
    Alors oui le BOxLayout est censé aligner. Mais il le fait après avoir dimensionné le composant. Or le JLablel lui dit en gros "hé file moi tout la place que t'as". Du coup, ca va être au JLabel de faire le boulot de centrage dans l'espace dont il dispose. Donc c'est sur le JLabel qu'il faut définir l'alignement (si ma mémoire est bonne, pas testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	public PanResultat() {
     
    		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
     
    		JLabel l1= new JLabel("Label1",CENTER);
    		JLabel l2= new JLabel("Label2",CENTER);
    		JLabel l3= new JLabel("Label3",CENTER);
    		l1.setOpaque(true);
    		l1.setBackground(new Color(200, 200, 200));
    		add(l1);
    		add(l2);
    		add(l3);
    	}

Discussions similaires

  1. GridBagLayout et champs trop petits
    Par freeway57 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 17/07/2014, 15h57
  2. (ListBox) diviser la colonne en 2 ou 3 colonnes car trop long
    Par mario201066 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 31/03/2013, 13h08
  3. Colonne en trop dans une ListView
    Par paintbox dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/01/2013, 01h31
  4. Une colonne de trop sur ListView
    Par mithrendil dans le forum C#
    Réponses: 1
    Dernier message: 05/09/2011, 12h59
  5. [C#] Colonne de trop dans DataGrid avec SQLCE
    Par Roach- dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/04/2005, 21h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo