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 :

a propos d'AbstractTableModel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut a propos d'AbstractTableModel
    Bonjour,

    j'ai mon propre model de JTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class MyTableModel extends AbstractTableModel{
    ...
    }
    Tout marche parfaitement, maintenant je veux creer une 2-ieme table, dont le modele est identique, je fais alors ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class ExTableModel extends MyTableModel{
    ...
    }
    alors c'est la que le hic commence, quand j'utilise ExTableModel, c'est les methodes de MyTableModel qui s'executent au lieu de ExTableModel et pourtant j'ai surcharger les methodes de MyTableModel dans ExTableModel.

    Est ce que cela est du au faite que MyTableModel implemente les methodes abstraites de AbstractTableModel et que les methodes abstraites une fois implementees ne peuvent plus etre surcharger?

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par Zorgz
    Bonjour,

    j'ai mon propre model de JTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class MyTableModel extends AbstractTableModel{
    ...
    }
    Tout marche parfaitement, maintenant je veux creer une 2-ieme table, dont le modele est identique,
    Pourquoi ne pas utiliser alors le mème modele pour tes deux tables ?
    je fais alors ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class ExTableModel extends MyTableModel{
    ...
    }
    alors c'est la que le hic commence, quand j'utilise ExTableModel, c'est les methodes de MyTableModel qui s'executent au lieu de ExTableModel et pourtant j'ai surcharger les methodes de MyTableModel dans ExTableModel.

    Est ce que cela est du au faite que MyTableModel implemente les methodes abstraites de AbstractTableModel et que les methodes abstraites une fois implementees ne peuvent plus etre surcharger?
    non.
    L'erreur doit se trouver autre part : Tu peux très bien surcharcger des méthodes initialement abstraites. Affecte-tu bien ExTableModel à ta deuxième table ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut
    je veux pas utiliser le meme modele juste pour des raisons philosophiques...un model pour les patients un autre pour les docteurs, la fonctionnalite est la meme...mais leur methodes getValue(...) different, c'est pour ca je veux surcharger que getValue(...) les autes methodes je les touches pas...

    Mais il y a un pb kelke part....et je sais pas ou...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut
    Voici le code...ca pourra peut etre expliquer le pb.
    La c'est le code de PatientsListTableModel
    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
     
    public class PatientsListTableModel extends javax.swing.table.AbstractTableModel
    	implements PropertyChangeListener, TableModelListener 
    {
    	protected static String[] HEADER_NAMES = {"aaa", "bbb", "ccc"};
    	private int dataLength = 0;
    	private final Model model;
     
    	protected static ResultSet RS = null;
     
    	/**
             * Creates a new instance of PatientsListTableModel
             */
    	public PatientsListTableModel(final Model local_model)
    	{
    		this.model = local_model;
    		this.addTableModelListener(this);
    	}
     
    	public int getRowCount()
    	{
    		return dataLength;
    	}
     
    	public int getColumnCount()
    	{ return HEADER_NAMES.length; }
     
    	public Object getValueAt(final int rowIndex, final int columnIndex)
    	{
    		System.out.println("getVlaue from patient");
                              ...
    		return rsObject;
    	}
     
    	public String getColumnName(final int columnIndex)
    	{ return HEADER_NAMES[columnIndex]; }
     
    	public void propertyChange(PropertyChangeEvent evt)
    	{
                       ...
    	}
     
    	public void tableChanged(TableModelEvent e)
    	{
                          ...
    	}
    }
    La c'est le code de DoctorsListTableModel
    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
     
    public class DoctorsListTableModel extends PatientsListTableModel
    {
    	private final static String[] HEADER_NAMES = {"aa", "bb", "cc", "dd", "ee", "ff"};
    	private int dataLength = 0;
    	private final Model model;
    	private Object[][] object = 
    	{
    		{null, null, null, null, null, null},
    		{null, null, null, null, null, null},
    		{null, null, null, null, null, null},
    		{null, null, null, null, null, null},
    		{null, null, null, null, null, null}
    	};
     
    	//protected static ResultSet RS = null;
     
    	/** Creates a new instance of DoctorsListTableModel */
    	public DoctorsListTableModel(Model local_model)
    	{
    		super(local_model);
     
    		super.HEADER_NAMES = this.HEADER_NAMES;
     
    		this.model = local_model;
    	}
     
    	public Object getValueAt(final int rowIndex, final int columnIndex)
    	{
    		System.out.println("getVlaue from doctor");
    		return object[rowIndex][columnIndex];
    	}
     
    	public void test()
    	{
    		System.out.println("hello from doctor");
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    scrollPane.setViewportView(new DoctorsListTable(local_model, new DoctorsListTableModel(local_model)));
    this.doctorsListPanel.add(scrollPane, java.awt.BorderLayout.CENTER);
    ...
    voila...et quand je lance le code j'ai "getVlaue from patient" qui s'affiche au lieu de "getVlaue from doctor"...???

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut
    ca y'est j'ai resolu le pb...il fallait que je surcharge aussi la methode
    public void tableChanged(TableModelEvent e) dans DoctorsListTableModel, sinon s'appellait la meme methode mais pour patientsListTableModel.

    Et puis encore je m'excuse de la desinformation, contrairement a ce que j'ai ecris plus haut, les methodes que j'ai surcharger ds DoctorsListTableModel s'appellait bel et bien comme il le fallait.

    Finallement le probleme consistait a prendre les bonnes donnes pour la table correspondante et de cela repondait tableChanged(TableModelEvent e).

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

Discussions similaires

  1. A propos de Last_insert_id
    Par f-demu01 dans le forum Administration
    Réponses: 2
    Dernier message: 26/03/2003, 08h32
  2. A propos depth buffer
    Par j.yves dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h41
  3. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  4. Fonctionnement de la compression DivX
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 20/09/2002, 14h10
  5. A propos du composant DBGrid
    Par _Rico_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/07/2002, 09h18

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