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

Composants Java Discussion :

[Swing / JTable] Rendre les cellules d'un JTable non éditables


Sujet :

Composants Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut [Swing / JTable] Rendre les cellules d'un JTable non éditables
    Salut, ca fait une heure que je galère a passer toutes les méthodes de JTable, j'aimerai simplement rendre mes cellules non-editable, tout en pouvant toujours selectionner mes lignes ( car quand je met setEnabled(false) je pe certe pu editer mes cellules mais je ne pe plus rien selectionner non plus !!!)
    Si quelqu'un a une idée ...
    Merci d'avance
    [ Modéré par vedaer ]
    -> Ajout du tag dans le titre
    [ Merci de respecter les Règles du Forum ]

  2. #2
    Membre du Club Avatar de eraim
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Points : 63
    Points
    63
    Par défaut
    Il faut faire une recherche sur le forum avant de poster un message!

    Va voir celui là :

    http://www.developpez.net/forums/viewtopic.php?t=74000

    Cela devrait t'aider...
    eraim

    "Nous gagnerions plus de nous laisser voir tels que nous sommes, que d'essayer de paraître ce que nous ne sommes pas"
    [François de La Rochefoucauld]

  3. #3
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Bienvenue dans le monde des JSwing... Des composants très puissants mais ou il faut en chier pour bien comprendre comment ça fonctionne.

    Ca fait 2 jours que je suis également sur les JTable et j'ai le même problème que toi.
    Alors je crois que le mieux est de télécharger les exemples sur le site de sun et de les comprendre.

    Bon courage... Si quelqu'un pouvait nous aider ce serait quand même mieux :wink:

    A++
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Ca y ait, c'est résolu !!!
    Merci, eraim et désolé mais hier j'ai pas eu le tps de chercher sur le forum

    Pour ceux que ca interresse (Stailer en particulier, je pense) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        DefaultTableModel dtmTableModel = new DefaultTableModel (donnees,Titre){
        public boolean isCellEditable(int iRowIndex, int iColumnIndex)
        {
              return false;
        }
      };
      m_jTable = new JTable(dtmTableModel);

  5. #5
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Ouaip ouaip... C'est le code que j'avais trouvé mais je n'ai pas fait la même chose sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     m_jTable = new JTable(dtmTableModel);
    Donc j'essaye ca à midi ou ce soir.

    Merci beaucoup pour ce code.

    A++
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  6. #6
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Et ben ca fonctionne pas... Je comprends plus..

    Voila mon code de départ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String[] colonnes = {"ID","[Titre 1]","Titre 2"};
      DefaultTableModel modele = new DefaultTableModel(colonnes, 0);// application des colonnes dans le modele
      public boolean isCellEditable(int iRowIndex, int iColumnIndex)
     {
           return false;
     }
     
      JTable jTable1 = new JTable(modele);
    Et voila le code qui ajoute des lignes (il est dans une boucle) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     TableModele.setNumRows(maliste.size());
     TableModele.setValueAt(mResult, y , x-1);
    J'ai essayé de mettre modele.iscelleditable partout ou je pouvais.. Rien n'y fait. C'est le mystère.

    Avant de tout casser et faire une classe dérivée AbstractTableModel t'aurais pas une idée par hasard ?
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par stailer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String[] colonnes = {"ID","[Titre 1]","Titre 2"};
      DefaultTableModel modele = new DefaultTableModel(colonnes, 0);// application des colonnes dans le modele
      public boolean isCellEditable(int iRowIndex, int iColumnIndex)
     {
           return false;
     }
     
      JTable jTable1 = new JTable(modele);
    essaye de mettre plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Object[] colonnes = {"ID","[Titre 1]","Titre 2"};
    Object[][] Donnees = {}; 
      DefaultTableModel modele = new DefaultTableModel(Donnees,colonnes0);
      public boolean isCellEditable(int iRowIndex, int iColumnIndex)
     {
           return false;
     }
     
      JTable jTable1 = new JTable(modele);

  8. #8
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Salut,

    merci de m'aider... Ca marche pas non plus.
    En fait TOUT marche sauf isCellEditable... Comme s'il ne reconnaissait pas la nouvelle méthode.

    Alors j'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      public boolean isCellEditable(int iRowIndex, int iColumnIndex) 
    { 
        System.out.println("test");  
        return false; 
    }
    Et il n'y passe pas !

    Donc y a un truc... Je sais pas quoi... Je vais essayer de créer une nouvelle classe.

    Si tu as (encore) une autre idée, n'hésite pas.
    Merci pour ton aide
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  9. #9
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Et ben vi ! C'était ça !

    Putin... Si jusqu'à maintenant j'étais un peu "affolé" par la programmation objet, avec Java j'ai de quoi me mettre sous la dent. LoL... Au moins je saurais de quoi je parle huhuhuhu.

    Merci encore de ton aide.

    A++
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Tu developpe avec kel logiciel ??

  11. #11
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Avec JBuilder.

    En fait j'ai crée une nouveau fichier avec une nouvelle classe dérivée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class ModeleTab extends DefaultTableModel
     
     ...
     
     
    public boolean isCellEditable(int iRowIndex, int iColumnIndex) 
        { 
              return false; 
        } 
     
    }
    Mais je trouve ça bien puisqu'au moins mon code du modèle n'est pas mélangé avec le reste... Surtout si dois encore le "personnalisé" et donc redéfinir d'autres méthodes.
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    A tout hasard, tu saurai pa comme fait une "Actualisation" de mon panel ...

  13. #13
    Membre du Club Avatar de eraim
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Points : 63
    Points
    63
    Par défaut
    Ca ne marche pas en faisant :
    ?
    eraim

    "Nous gagnerions plus de nous laisser voir tels que nous sommes, que d'essayer de paraître ce que nous ne sommes pas"
    [François de La Rochefoucauld]

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    nan ca marche pas !!

  15. #15
    Membre habitué Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Points : 153
    Points
    153
    Par défaut avec un peu en retard :)
    voilà ce que j'ai fait... avec 5 ans de retard mais je viens juste d'avoir le problème et je suis tombé sur cette discussion.
    Au cas où quelqu'un passe par là dans 10 ans ça peut toujours servir.

    donc, je créé une classe NonEditableDefaultTableModel utilisable à la place de DefaultTableModel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import javax.swing.table.DefaultTableModel;
     
    public class NonEditableDefaultTableModel extends DefaultTableModel {
     
    	public boolean isCellEditable(int iRowIndex, int iColumnIndex) { 
     
    		return false; 
        } 
    }
    bon c'est vrai, ça bloque l'édition de tout le tableau, mais c'est ce que l'on veut là.

    ensuite au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultTableModel tableModel = new DefaultTableModel();
    je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultTableModel tableModel = new NonEditableDefaultTableModel();
    et pour en revenir à l'actualisation d'un JTable.

    je créer un nouveau DefaultTableModel et je fait un setModel avec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DefaultTableModel nouveauTableModel = new DefaultTableModel();
    //...
    //bricolage de mon nouveauTableModel
    //..
    monJTableARafraichir.setModel(nouveauTableModel);
    Et hop mon tableau change.
    Le plus compliqué, c'est de faire quelque chose de simple.

  16. #16
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2009
    Messages : 138
    Points : 159
    Points
    159
    Par défaut
    Yep merci bien
    J'ai été confronté à ce problème de "rafraichissement" y'a pas longtemps... Je vais tester ta solution

  17. #17
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 62
    Points
    62
    Par défaut
    Salut,
    presque un an de retard, mais là je suis confronté au problème de rendre un JTable non éditable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    package test;
     
    import javax.swing.table.DefaultTableModel;
     
    public class NonEditableDefaultTableModel extends DefaultTableModel {
     
    	public boolean isCellEditable(int iRowIndex, int iColumnIndex) { 
     
    		return false; 
        } 
    }

    Comment je dois déclarer ma JTable en non éditable ?


    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
    118
    119
    120
    package Moteur;
     
     
    import javax.swing.*;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.input.SAXBuilder;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.io.File;
    import java.util.Iterator;
    import java.util.List;
     
    import java.util.Vector;
    import javax.swing.table.DefaultTableModel;
     
    public class XmlToJTabble extends JPanel {
     
        private final boolean DEBUG = false;
        private Document document;
        private final Element racine;
        private final JScrollPane scrollPane;
        private final JTable table;
        private final Vector columnNames;
        private final Vector data;
     
        public XmlToJTabble() {
            super(new GridLayout(1, 0));
            columnNames = new Vector();
            columnNames.add("nom");
            columnNames.add("IdClient");
            columnNames.add("Type");
            columnNames.add("Taille");
            columnNames.add("DateEnvoi");
            columnNames.add("AncienNom");
     
            data = new Vector();
            table = new JTable(data, columnNames);        
            table.setPreferredScrollableViewportSize(new Dimension(900, 70));
            table.setFillsViewportHeight(true);
            if (DEBUG) {
                table.addMouseListener(new MouseAdapter() {
     
                    @Override
                    public void mouseClicked(final MouseEvent e) {
                        printDebugData(table);
                    }
                });
            }
            SAXBuilder sxb = new SAXBuilder();
            try {
                document = sxb.build(new File("CodesBarres.xml"));
            } catch (Exception e5) {
                e5.printStackTrace();
            }
            racine = document.getRootElement();
            System.out.println("racine " + racine);
            List listfichier = racine.getChildren("fichier");
            System.out.println(listfichier.size());
            Iterator i = listfichier.iterator();
            while (i.hasNext()) {
                Element courant = (Element) i.next();
                String[] rowData = {
                		courant.getChild("nom").getText(),
                        courant.getChild("IdClient").getText(),
                        courant.getChild("Type").getText(),
                        courant.getChild("Taille").getText(),
                        courant.getChild("DateEnvoi").getText(),
                        courant.getChild("AncienNom").getText()
                };
                ((DefaultTableModel) table.getModel()).addRow(rowData);
            }
            scrollPane = new JScrollPane(table);
            add(scrollPane);
        }
     
        private void printDebugData(final JTable table) {
            int numRows = table.getRowCount();
            int numCols = table.getColumnCount();
            javax.swing.table.TableModel model = table.getModel();
            System.out.println("Value of data: ");
            for (int i = 0; i < numRows; i++) {
                System.out.print("    row " + i + ":");
                for (int j = 0; j < numCols; j++) {
                    System.out.print("  " + model.getValueAt(i, j));
                }
                System.out.println();
            }
            System.out.println("--------------------------");
        }
     
        /**
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event-dispatching thread.
         */
        private static void createAndShowGUI() {
            //Create and set up the window.
            JFrame frame = new JFrame("XmlJTable ");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Create and set up the content pane.
            XmlToJTabble newContentPane = new XmlToJTabble();
            newContentPane.setOpaque(true); //content panes must be opaque
            frame.setContentPane(newContentPane);
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        }
     
        public static void main(final String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
     
                public void run() {
                    createAndShowGUI();
                }
            });
        }
    }

  18. #18
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Affecte ton nouveau modèle (NonEditableDefaultTableModel ) à ta JTable via un setModel.

  19. #19
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 62
    Points
    62
    Par défaut
    Je met ça dans mon code du package Moteur, et ça me donne un JPanel vide.

    Comment on ajoute les données et les colonnes sans faire :
    new JTable( data , columns );
    ??

    lorsque columns et data sont des vector.

    J'ai bien vu la méthode addColumn( ) mais les types ne correspondent pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    table.setModel(new NonEditableDefaultTableModel() );

  20. #20
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Il faut utiliser ton modèle pour modifier ou récupérer les données.
    Regarde le tuto de Sun:
    http://java.sun.com/docs/books/tutor...nts/table.html

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

Discussions similaires

  1. Comment rendre toutes les cellules d'un jtable éditables?
    Par doudou7777 dans le forum Composants
    Réponses: 2
    Dernier message: 11/04/2014, 21h28
  2. rendre les cellules d'un jTable éditables
    Par ifsera dans le forum Composants
    Réponses: 1
    Dernier message: 03/05/2013, 11h14
  3. Réponses: 6
    Dernier message: 08/07/2011, 16h22
  4. Réponses: 8
    Dernier message: 18/08/2008, 21h18
  5. Rendre les cellules de jtreetable editable/non editable
    Par opensource dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 07/02/2008, 17h52

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