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 :

[JTable] Changer les colonnes de manière dynamique


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 41
    Points : 36
    Points
    36
    Par défaut [JTable] Changer les colonnes de manière dynamique
    Bonjour à tous,

    j'aimerais donc que mes titres puissent etre modifiés en cours de programme, j'ai deja essayé :

    quelque chose du genre :
    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
     
     
        class MyTableModel extends AbstractTableModel {
            private String[] columnNames={"hehehe","hohoho"};
            private Object[][] data = {
                {"Mary", "Campione",
                 "Snowboarding", new Integer(5), new Boolean(false)},
                {"Alison", "Huml",
                 "Rowing", new Integer(3), new Boolean(true)},
                {"Kathy", "Walrath",
                 "Knitting", new Integer(2), new Boolean(false)},
                {"Sharon", "Zakhour",
                 "Speed reading", new Integer(20), new Boolean(true)},
                {"Philip", "Milne",
                 "Pool", new Integer(10), new Boolean(false)}
            };
     
            public int getColumnCount() {
                return columnNames.length;
            }
     
            public int getRowCount() {
                return data.length;
            }
     
            public void setColumnName(String[] colNames){
            	columnNames=new String[colNames.length];
            	columnNames=colNames;
            }
     
            public void setData(Object[][] data_){
            	data=data_;
            }
     
            public String getColumnName(int col) {
            	System.out.println("appele :  renvoie '"+columnNames[col]+"'");
            	return columnNames[col];
            }
            public Object getValueAt(int row, int col) {
                return data[row][col];
            }
        }
     
     
    //          -----------------   
    ...
     
    MyTableModel tm=new MyTableModel ();
    JTable table = new JTable(tm);
     
    JScrollPane table_sp=new JScrollPane(table);
    panel_clients.add(table_sp);
     
    String[] ti= {"huhu","hihi"};
    tm_articles.setColumnName(ti);
    table.revalidate();
    mais ca ne donne rien et les titres restent ce qu'ils etaient. J'ai aussi remarqué que la methode getColumnName n'est appelée que au demarrage du programme, ce qui me laisse penser que ca n'est q'unproblème de rafraichissement ?

    merci d'avance pour votre aide.

  2. #2
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    Effectivement le modèle doit notifier ses vues lorsqu'il évolue.

    Dans AbstractTableModel, il y a des méthodes pour cela. Tu peux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fireTableStructureChanged();

  3. #3
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    bonsoir,
    envoie un événement lors du changement de nom des colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void setColumnName(String[] colNames){ 
      columnNames = colNames;
      fireTableStructureChanged();
    }

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 41
    Points : 36
    Points
    36
    Par défaut
    ca marche impec !

    merci de vos réponses ! ( très rapides en plus 8) )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/07/2011, 16h22
  2. [Swing]JTable- Dimensionner les colonnes
    Par loutfi dans le forum Composants
    Réponses: 12
    Dernier message: 01/07/2011, 08h50
  3. [jTable] changer les couleurs sur un double clique
    Par lkryss dans le forum Composants
    Réponses: 37
    Dernier message: 04/05/2008, 22h49
  4. Réponses: 8
    Dernier message: 30/11/2006, 12h26
  5. [JTable] Changer les données
    Par norkius dans le forum Composants
    Réponses: 12
    Dernier message: 27/01/2005, 14h51

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