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] Problème d'instanciation


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Par défaut [JTable] Problème d'instanciation
    Bonjour

    J'essaie de créer une sous-classe de JTable, mais j'ai un problème avec le constructeur. Lorsque j'appelle le constructeur de JTable par super(...), j'obtiens un tableau sans colonnes, alors que si j'appelle explicitement new JTable(...), je réussi à avoir des colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class MaTable extends JTable {
       static String [] test = new String[] {"A", "B"};
     
       protected MaTable(paramètres) {
          super(new String[30][30], test);
          System.out.println("TEST super : " + getColumnCount() );
     
          JTable jtable = new JTable(new String[30][30], test); 
          System.out.println("TEST JTable : " + jtable.getColumnCount() );
       }
    }
    Lorsque j'appelle ce constructeur j'ai le message :
    TEST super : 0
    TEST JTable : 2
    Ce qui montre que le constructeur super(...) renvoie un tableau sans colonne.

    Où est mon erreur?

    Merci

  2. #2
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    ?

    quand je teste chez moi j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TEST super : 2
    TEST JTable : 2

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Par défaut
    Peut-être, Jar Jar, instancies-tu un modèle pour MaTable qui annule l'insatanciation que l'on voit dans ton code ?
    Puisque qu'avec ce simple bout de code biozaxx ne semble pas avoir de problème...

    [EDIT]: je viens de dire une grosse co****ie, du coup je ne vois pas d'où cela peut venir...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Par défaut
    Excuse-moi. En fait, le code n'était pas complet. Le code est :

    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
    public class MaTable extends JTable {
       static String [] test = new String[] {"A", "B"};
     
       protected MaTable(paramètres) {
          super(new String[30][30], test);
          System.out.println("TEST super : " + getColumnCount() );
     
          JTable jtable = new JTable(new String[30][30], test); 
          System.out.println("TEST JTable : " + jtable.getColumnCount() );
       }
     
       public void tableChanged(TableModelEvent e) {
          action ...
       }
    }
    L'erreur venait de la méthode tableChanged et j'ai réussi à la corriger ainsi :

    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
    public class MaTable extends JTable {
       static String [] test = new String[] {"A", "B"};
      
       protected MaTable(paramètres) {
          super(new String[30][30], test);
          System.out.println("TEST super : " + getColumnCount() );
        
          JTable jtable = new JTable(new String[30][30], test); 
          System.out.println("TEST JTable : " + jtable.getColumnCount() );
       }
    
       public void tableChanged(TableModelEvent e) {
          super.tableChanged(e);
          action ...
       }
    }
    Je ne comprends pas pourquoi le fait de redéfinir cette méthode influence le constructeur.

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

Discussions similaires

  1. [JTable] Problème avec la couleur de fond
    Par ellocin dans le forum Composants
    Réponses: 5
    Dernier message: 13/09/2005, 23h07
  2. [JTable]Problême de Look and Feel???
    Par D-Phaz dans le forum Composants
    Réponses: 1
    Dernier message: 05/08/2005, 15h24
  3. [JTable] Problème pour rafraichir
    Par jaoued dans le forum Composants
    Réponses: 3
    Dernier message: 20/07/2005, 15h21
  4. [JTable] problème après suppression d'une ligne
    Par fredo3500 dans le forum Composants
    Réponses: 7
    Dernier message: 17/03/2005, 10h01
  5. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07

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