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

AWT/Swing Java Discussion :

Lien entre JSplitPane et JPanel


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut Lien entre JSplitPane et JPanel
    Bonjour, voici mon problème,
    j'ai crée une Frame dans laquelle se trouve un JSplitPane qui lui même contient a gauche un panel Menu avec 4 boutons et a droite un JPanel.

    Je voudrais que lorsqu'on appuie sur l'un des 4 boutons le JPanel approprié soit affiché dans le JSplitPane à droite, une sorte de menu quoi.

    Mais je ne sais pas comment gerer les ActionListener des boutons.

    voici les classes qui interagissent :

    MainGui.java - Jframe -> JSplitPane
    |_
    gauche
    Menu.java - JPanel -> 4 JButtons

    droite (en fonction de la selection du bouton)
    panel1 - JPanel
    panel2 - JPanel
    panel3 - JPanel
    panel4 - JPanel

    Si vous avez besoins d'autres precissions je vais essayer d'eclaircir les choses mais je sais pas comment l'expliquer autrement.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Il faut que tu utilises un CardLayout dans ton composant de droite. Et suivant le bouton sélectionné, tu passes en haut le composant correspondant.

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Tu dois implémenter une communication entre tes boutons de Menu et ta MainGui.
    Pour cela :
    - soit tu réfèrences un objet de type MainGui dans ta classe Menu et sur les ActionListener des boutons, tu appelles une méthode de MainGui qui prend en paramètre le numéro de panel à afficher, et qui affiche le panel correspondant
    - soit tu te crées ton propre listener qui avertit MainGui qu'un bouton a été pressé depuis ton panel Menu. (=> mécanisme d'abonnement et de désabonnement à gérer)

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par sozie9372
    Il faut que tu utilises un CardLayout dans ton composant de droite. Et suivant le bouton sélectionné, tu passes en haut le composant correspondant.
    Au lieu d'un CardLayout, il vaut mieux utiliser un JTabbedPane quand même...

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par seiryujay
    Au lieu d'un CardLayout, il vaut mieux utiliser un JTabbedPane quand même...
    Tout dépend de l'esthétique que tu prévois pour ton appli, un cardlayout peut parfaitement se justifier...

  6. #6
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Avec un JtabbedPane, il n'aura plus besoin des boutons sur le panneau de droite

  7. #7
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par sinok
    Tout dépend de l'esthétique que tu prévois pour ton appli, un cardlayout peut parfaitement se justifier...
    Il me semblait que le CardLayout donnait le même résultat visuel qu'un JTabbedPane, sauf que les mécanismes de changement d'onglet n'étaient pas implémentés (contrairement au JTabbedPane).
    Mais je me trompe peut-être...

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tout dépend de ce que tu veux en faire, dans le cadre d'un wizard ça te permet de stocker tes panels pour les afficher à la bsuite, et pas franchement besoin d'onglets...

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Le principe du JTabbedPane est assez simple a mettre en oeuvre mais mon but est de faire un petit jeu de role.

    Et donc j'aimerais garder mes boutons à gauche dans le JSplitPane.

    seiryujay tu me dis ca :
    Tu dois implémenter une communication entre tes boutons de Menu et ta MainGui.
    Pour cela :
    - soit tu réfèrences un objet de type MainGui dans ta classe Menu et sur les ActionListener des boutons, tu appelles une méthode de MainGui qui prend en paramètre le numéro de panel à afficher, et qui affiche le panel correspondant
    - soit tu te crées ton propre listener qui avertit MainGui qu'un bouton a été pressé depuis ton panel Menu. (=> mécanisme d'abonnement et de désabonnement à gérer)
    Pourrais tu me donner plus de details concernant ces 2 points, j'ai pas vraiment l'habitude de reprogrammer les Listener, merci.

    pour la premiere proposition il suffirait de faire un constructeur

    Menu(JFrame frame){} //JFrame pour MainGui

    mais alors je sais pas comment recuperer le JSplitPane pour mettre a jour le panel de droite.

    merci d'avance.

  10. #10
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Wow! Ca va me prendre du temps ça dis donc...

    Bon d'abord la question facile :
    pour la premiere proposition il suffirait de faire un constructeur

    Menu(JFrame frame){} //JFrame pour MainGui

    mais alors je sais pas comment recuperer le JSplitPane pour mettre a jour le panel de droite.
    Tu fais bien ça, sauf qu'en plus, tu stockes ta frame dans une variable membre de la classe Menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private JFrame maFrame;
    Constructeur :
    Du coup, quand tu cliques sur ton bouton, tu accèdes aux données de maFrame. (n'oublies pas de caster en MainGui si tu stockes une JFrame plutôt qu'une variable de type MainGui)



    Pour les listeners :
    1) Tu te crées une interface qui servira de listener perso :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public interface MonListenerPerso {
         public void updateRightPanel(int panelNumber);
         // tu peux définir d'autres méthodes
    }
    2) Tu crées une ou plusieurs classes qui implémentent cette interface : c'est elles qui recevront l'évènement. Ces classes doivent implémenter les méthodes définies dans ton interface.
    Typiquement, dans ton cas, c'est MainGui qui doit implémenter cette interface et tu vas devoir te créer une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void updateRightPanel(int panelNumber) {
         getSplitPane().setRightComponent(getPanel(panelNumber)) ;
    }
    dans ta classe MainGui.
    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public JPanel getPanel(int panelNumber) {
         // retourne panel1 si panelNumber == 1
         // retourne panel2 si panelNumber == 2
         // retourne panel3 si panelNumber == 3
         // retourne panel4 si panelNumber == 4
    }
    3) Dans ta classe Menu, tu vas coder tout ce qui est lié à l'abonnement.
    3.1) Ajouter une variable membre de type List :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ArrayList monListenerPersoList;
    qui contiendra toutes les classes implémentant monListenerPerso et qui doivent être prévenues de l'appui sur un de tes boutons.
    A priori, cette liste ne contiendra qu'une instance de MainGui, mais au cas où, laisse la liste.

    3.2) Tu crées des méthodes d'abonnement et de désabonnement :
    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 void removeListener(MonListenerPerso list) {
    		monListenerPersoList.remove(list);
    	}
     
    	public void removeAllListeners() {
    		monListenerPersoList.clear();
    	}
     
    	public void addMonListenerPerso(MonListenerPerso list) {
    		if (!monListenerPersoList.contains(list)){
    			monListenerPersoList.add(list);		
    		}
    	}
    Grâce à ça, lors de la contruction de ton Menu, tu vas pourvoir ajouer l'instance de ta classe MainGui à la liste des listeners :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addMonListenerPerso(frame);
    3.3) Tu crées une méthode de "lancement d'évènement" qui propage ton évènement en appelant la méthode adéquate de chacun des listener abonnés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void fireChangePanel(int panelNumber) {
         for (int i=0; i<monListenerPersoList.size(); i++){
              ((MonListenerPerso)monListenerPersoList.get(i)).updateRightPanel(panelNumber);
         }
    Du coup la méthode updateRightPanel(int panelNumber) de MainGui est appelée.
    Pour que cela se fasse au bon moment, tu ajoutes un appel à cette méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fireChangePanel(int panelNumber)
    dans l'ActionListener de chacun de tes boutons, en passant l'entier adéquat en paramètre.

    Et je crois que c'est à peu près tout...
    Cela te permet entre autre de propager certaines informations à différents objets de différentes classes, chaque classe pouvant réaliser un traitement particulier dans les méthodes définies dans ton interface.

    Si t'as un problème de compréhension ou si ça ne marche pas (auquel cas, j'ai sûrement oublié un truc), n'hésite pas!

  11. #11
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Genial un grand merci je teste ca des que je rentre du travail.

    pour le constructeur Menu(JFrame frame) j'avais deja testé mais j'avais oublié de faire un casting.

    merci bcp je te dis si ca marche..

  12. #12
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Heaven54
    Genial un grand merci je teste ca des que je rentre du travail.

    pour le constructeur Menu(JFrame frame) j'avais deja testé mais j'avais oublié de faire un casting.

    merci bcp je te dis si ca marche..
    beh t'as pas qu'à te contenter de figurants à défaut de grands noms....


    Bon d'accord

  13. #13
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    C'est encore et tjrs moi, lol.
    J'ai un petit probleme avec ton explication des listeners seiryujay.


    quand tu dis
    Pour les listeners :
    1) Tu te crées une interface qui servira de listener perso :
    que veut tu dire exactement par interface?


    ensuite tu me dis
    2) Tu crées une ou plusieurs classes qui implémentent cette interface : c'est elles qui recevront l'évènement. Ces classes doivent implémenter les méthodes définies dans ton interface.
    Typiquement, dans ton cas, c'est MainGui qui doit implémenter cette interface et tu vas devoir te créer une méthode :
    ...

    la je comprends pas, désolé pas trop baleze en Listener.

    par contre j'ai deja change mon constructeur du Menu

    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
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class Menu extends JPanel implements ActionListener{
     
    	private JButton quete;
    	private JButton perso;
    	private JButton invent;
    	private JButton map;
    	/*JFrame principale */
    	private MainGui Mg;	
     
    	/*Panels venant a droite dans le JSplitPAne du JFrame Mg*/
    	private WorldMap Wmap;	
    	private Fiche f;	
    	private Quests q;
     
    	/*constructeur Menu*/
    	public Menu(MainGui gui,WorldMap wm,Fiche fichP,Quests quest) {
     
    		Mg = gui;
     
    		Wmap = wm;
    		f = fichP;
    		q = quest;
     
    		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
     
    		map = new JButton("Monde");
    		map.setMnemonic('m');
    		quete = new JButton("Journal");
    		quete.setMnemonic('j');
    		invent = new JButton("Inventaire");
    		invent.setMnemonic('i');
    		perso = new JButton("Caractéristiques");
    		perso.setMnemonic('c');
     
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(map);
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(quete);
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(invent);
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(perso);
     
    		setVisible(true);
    	}	
     
                 public void actionPerformed(ActionEvent e)
                 {
                      Object o = e.getSource();
                      /*a implementer*/
                 }
    }
    et voici le code de ma class MainGui:

    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
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
     
    public class MainGui extends JFrame implements ActionListener{
     
    	JFrame frame;
    	JSplitPane splitPane;
     
    	public MainGui()
    	{
    		frame = new JFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    		splitPane.setDividerLocation(JSplitPane.CENTER_ALIGNMENT);
    		splitPane.setBackground(Color.ORANGE);
     
    		frame.setPreferredSize(new Dimension(800,600));
     
    		/*packetage de la frame et affichage*/
    		frame.getContentPane().add(splitPane);
    		frame.pack();
    		frame.setVisible(true);	
    	}
     
     
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
    }
    Et c'est dans la class JeuDeRole qu'i y'a la main avec tout.

    Voila j'espere que ceci t'éclaireras sur mon probleme.
    Les JPanel dans la class Menu son de simples JPanel sans boutons(pour le moment)
    , ou autres composants sauf image.
    Merci d'avance.

  14. #14
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Ton interface perso --> MonListenerPerso
    Si tu définis une classe implementant MonListenerPerso tu auras donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public MaClasse implements MonListenerPerso {
      ...
      public void updateRightPanel(int panelNumber) {
         getSplitPane().setRightComponent(getPanel(panelNumber)) ;
      }
      ...
    }
    En implémentant une interface tu dois redéfinir les méthodes qui y sont déclarées. Tout comme lorsque tu fais une classe implémentant ActionListener et la méthode actionPerformed si tu préfères.

  15. #15
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par sozie9372
    Ton interface perso --> MonListenerPerso
    Si tu définis une classe implementant MonListenerPerso tu auras donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public MaClasse implements MonListenerPerso {
      ...
      public void updateRightPanel(int panelNumber) {
         getSplitPane().setRightComponent(getPanel(panelNumber)) ;
      }
      ...
    }
    En implémentant une interface tu dois redéfinir les méthodes qui y sont déclarées. Tout comme lorsque tu fais une classe implémentant ActionListener et la méthode actionPerformed si tu préfères.
    Pas mieux pour l'explication
    Et pour ce qui est de la construction de cette interface, regarde dans mon post explicatif : t'as le code au complet (point "1)"). C'est pas la partie la plus sorcière

  16. #16
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Citation Envoyé par seiryujay
    Pas mieux pour l'explication
    mais c'est à toi que revient tout le mérite

  17. #17
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par sozie9372
    mais c'est à toi que revient tout le mérite
    Hou hou hou! J'aime qu'on me flatte
    Le travail d'équipe : y'a que ça qui compte!

  18. #18
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Ok j'ai bien compris pour le "implements" et qu'il faut redefinir les methodes lorsqu'on implemente.

    Moi se qui m'embete c'est le "interface" car y'a pas de Objet en java qui s'appele interface alors je fais comment. (je sais c'est pas sorcier pour vous mais j'ai un peu plus de mal )

    t'inquiete pas sozie9372 ton explication je l'ai comprise.

    merci.

  19. #19
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par Heaven54
    Ok j'ai bien compris pour le "implements" et qu'il faut redefinir les methodes lorsqu'on implemente.

    Moi se qui m'embete c'est le "interface" car y'a pas de Objet en java qui s'appele interface alors je fais comment. (je sais c'est pas sorcier pour vous mais j'ai un peu plus de mal )

    t'inquiete pas sozie9372 ton explication je l'ai comprise.

    merci.
    Tu te crées un fichier MonListenerPerso.java dans lequel tu mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public interface MonListenerPerso {
         public void updateRightPanel(int panelNumber);
         // tu peux définir d'autres méthodes
    }
    C'est tout con : c'est comme une classe, sauf que c'est une interface

  20. #20
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Une derniere petite question ,

    la methode

    public JPanel getPanel(int panelNumber){}

    je la met dans quelle class? logiquement dans MainGui mais alors comment vais-je faire pour ajouter les listener aux boutons.

    jbutton1.addActionListener(..?..);
    ...

    aussi pour la methode fireChangePanel je l'appel ou parceque dans l'actionListener du bouton il me met une erreur.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/05/2004, 16h11
  2. Lien entre les vues 'Structure' et l'éditeur
    Par Tifauv' dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 13/05/2004, 16h06
  3. lien entre les table de paradox
    Par salim_intic1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2004, 16h00
  4. Réponses: 3
    Dernier message: 11/04/2004, 01h05
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 08h54

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