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 :

un problème avec le tableModel !!!


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Par défaut un problème avec le tableModel !!!
    bonjour j'essaye d'appliquer un tablemodel a une jtable mais ça ne marche pas

    le TableModel:
    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
    public class MyTableModel extends AbstractTableModel  {
     
    private static final long serialVersionUID = 1L;
    final String[] columnNames={ "Caractéristique", 
    		"CREDIT IN FINE","CREDIT AMORTISSABLE" } ;
    final Object[][] data= { { "CARACTERISTIQUES DE L'EMPRUNT"}, 
    		{ "Capital à Investir" },
    		{"Apport Personnel ( En % du Capital à investir)"},
    		{"Montant du Crédit"},
    		{"Taux d'intérêt du Crédit"},
    		{"Durée du Crédit"},
    		{" Interets annuels / Annuité constante payable à terme échu"}} ;
     
     
     
    public boolean isCellEditable(int row, int column)
    	    {
    	        if (row == 1 & column == 0)
    	        {
    	        	return false;
    	        }
    	        	else
    	        	{
    	        		return true;
    	        	}
    	    }
     
    public int getColumnCount() {
                return columnNames.length;
            }
     
            public int getRowCount() {
                return data.length;
            }
     
            public String getColumnName(int col) {
                return columnNames[col];
            }
     
            public Object getValueAt(int row, int col) {
                return data[row][col];
            }
     
     
            public Class getColumnClass(int c) {
                return getValueAt(0, c).getClass();
            }
     
     
    	}
    et la partie ou j'applique mon tablemodel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MyTableModel jCreditInFine_tableModel = new MyTableModel();
    jCreditInFine_table = new JTable(jCreditInFine_tableModel);
    Merci!!

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Resalut

    Tu as oublié certaines méthodes dans ton model, notamment le constructeur, le plus important.
    Et aucune méthode ne permet d'affecter de valeurs à la variable data.

    Je verrai bien les méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Object getValueAt(int rowIndex, int columnIndex)
    public void setValueAt(Object value, int rowIndex, int columnIndex)
    public void setData(object[][] data)
    Et le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public MyTableModel(object[][] data)

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Par défaut
    j'ai rectifié mon programme mais le problème persiste encore

    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
    public class MyTableModel extends AbstractTableModel  {
     
    		/**
                     * 
                     */
    private static final long serialVersionUID = 1L;
    String[] columnNames;
    Object[][] data;
     public void setValueAt(Object value, int row, int col) {
     
    	            data[row][col] = value;
    	            fireTableCellUpdated(row, col);
     
    	        }
    public MyTableModel(String[] vcol,Object[][] vdata){
    			 this.columnNames=vcol;
    			 this.data=vdata;
    		 }
     
     
    public boolean isCellEditable(int row, int column)
    	    {
    	        if (row == 1 & column == 0)
    	        {
    	        	return false;
    	        }
    	        	else
    	        	{
    	        		return true;
    	        	}
    	    }
    public int getColumnCount() {
                return columnNames.length;
            }
     
      public int getRowCount() {
                return data.length;
            }
     
      public String getColumnName(int col) {
                return columnNames[col];
            }
     
     public Object getValueAt(int row, int col) {
                return data[row][col];
            }
     
     
            public Class getColumnClass(int c) {
                return getValueAt(0, c).getClass();
            }
     
     
    	}
    le Programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    String[] columnNames={ "Caractéristique", 
    		"CREDIT IN FINE","CREDIT AMORTISSABLE" } ;
     
    Object[][] data= { { "CARACTERISTIQUES DE L'EMPRUNT"}, 
    								{ "Capital à Investir" },
    								{"Apport Personnel ( En % du Capital à investir)"},
    								{"Montant du Crédit"},
    								{"Taux d'intérêt du Crédit"},
    								{"Durée du Crédit"},
    								{" Interets annuels / Annuité constante payable à terme échu"}} ;
     
    MyTableModel jCreditInFine_tableModel = new MyTableModel(columnNames,data );
    il me sort cette erreur :

    java.lang.ArrayIndexOutOfBoundsException: 1
    at CreditINFINE$MyTableModel.getValueAt(CreditINFINE.java:251)
    at CreditINFINE$MyTableModel.getColumnClass(CreditINFINE.java:256)

    Merci

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    C'est le type d'erreur qu'on quand on sors d'un tableau, as-tu bien rempli la variable data?
    Je crois qu'elle ne peut pas contenir de valeurs nulles.

  5. #5
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    C'est le type d'erreur qu'on a quand on sors d'un tableau, as-tu bien rempli la variable data?
    Je crois qu'elle ne peut pas contenir de valeurs nulles.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    Excuse moi mais je n'ai pas trés bien compris à quoi servait ton tableau a 2dimensions.
    tu n'utilises que n lignes sur une colonne.
    ca doit etre pour ca que quand tu lui demandes la colonne 2, il renvoit null

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Par défaut
    j'ai bien besoin d'un tableau a 2 dimensions car data va contenir les enregistrement stocké dans une table

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    oui mais comme tu as initialisé ton tableau data :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Object[][] data= { { "CARACTERISTIQUES DE L'EMPRUNT"}, 
                            { "Capital à Investir" }, 
                            {"Apport Personnel ( En % du Capital à investir)"}, 
    ....                        {" Interets annuels / Annuité constante payable à terme échu"}} ;
    c'est comme si tu avais écrit :
    Object[][] data= new String[n][1];
    donc si tu lui demande de te renvoyer data[0][col] dès que l'index col sera différent de 0 ca va te faire une erreur. null.
    T'as un probleme avec ton initialisation... en fait la data pour l'instant il doit contenir le nom de tes lignes surment, et par la suite tu vas mettre les éléments de ton tableau

  9. #9
    Membre expérimenté Avatar de xxaragornxx
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Par défaut
    Comme tu as 3 colonnes et que ton getValueAt ressemble
    à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Object getValueAt(int row, int col) { 
                return data[row][col]; 
            }
    il faut que ton tableau data soit un tableau du style blabla[n][3].

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Par défaut
    oui vous avez raison j'ai carrement ignoré les colonnes
    merci bien maintenant ça marche

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

Discussions similaires

  1. Problèmes de rafraichissement JTable avec un TableModel
    Par LestoK dans le forum Composants
    Réponses: 3
    Dernier message: 10/04/2009, 14h37
  2. problème avec TableModel !!!
    Par mehdi82 dans le forum Composants
    Réponses: 14
    Dernier message: 08/12/2005, 11h28
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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