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] : nouvelle ligne?


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [JTable] : nouvelle ligne?
    Bonjour à tous,

    comment peut-on ajouter une ligne à un composant JTable
    j'ai recherché un peu partout sur le net la solution à mon pb mais je n'ai rien trouvé.

    Faut-il reconstruire une nouvelle JTable à chaque ajout?

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Il faut utiliser un TableModel dont tu modifie le contenu...

    a++

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    En faisant une recherche sur le forum tu trouveras rapidement des elements de reponse ...
    enfin, bienvenue a toi sur le forum

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par adiGuba
    Salut,

    Il faut utiliser un TableModel dont tu modifie le contenu...

    a++
    Voici mon code:
    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
     
    	class TabModele extends AbstractTableModel
    	{
    		Object donnees[][];
    		String colonnes[];
     
    		public TabModele(Object donnees[][], String colonnes[])
    		{
    			this.donnees=donnees;
    			this.colonnes=colonnes;
    		}
     
    		public int getColumnCount()
    		{
    			return donnees[0].length;
    		}
     
    		public Object getValueAt(int parm1,int parm2)
    		{
    			return donnees[parm1][parm2];
    		}
     
    		public void setValueAt(Object aValue, int rowIndex, int columnIndex)
    		{
    		}
     
    		public int getRowCount()
    		{
    			return donnees.length;
    		}
     
    		public String getColumnName(int col)
    		{
    			return colonnes[col];
    		}
     
    		public Class getColumnClass(int c)
    		{
    			switch(c){
    				case 0 : return String.class;
    				case 1: case 2: return Integer.class;
    				case 3: case 4: return String.class;
    				case 5: return Integer.class;
    				case 6: case 7: return String.class;
    				case 8: return Integer.class;
    				case 9: case 10: return String.class;
    			}
    			return getValueAt(0,c).getClass();
    		}
     
    		public boolean isCellEditable(int row,int col)
    		{
    			return true; //toutes les cellules éditables
    		}
    	}
    (c'est une classe interne)

    puis:
    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
     
            String[] columnNames={
            	"Diplôme",
    			"Nip",
    			"Ine",
    			"Nom",
    			"Prénom",
    			"Date de naissance",
    			"Adresse",
    			"Ville",
    			"Code postal",
    			"Téléphone",
    			"E-mail",
    			"Section"};
     
            Object[][] data={
                {"Maitrise", new Integer(10), new Integer(10), "rtreter", "erttert", new Integer(8), "fsgfd","fdg",new Integer(5),new Boolean(true),"retertret@caramail.com","Droit"},
                {"Licence", new Integer(10), new Integer(10), "fdgdfg", "fgdfg", new Integer(8), "dfgdfg","dfgdf",new Integer(5),new Boolean(true),"retertre@club-internet.fr","Géologie"},
                {"Deug", new Integer(10), new Integer(10), "dfgdfgdfgdf", "dfgdfgdf", new Integer(8), "dfgdf","dfgdf",new Integer(5),new Boolean(true),"ertret@hotmail.com","Japonais"},
                {"DEA", new Integer(10), new Integer(10), "dfgdfgdfg", "dfgdfg", new Integer(8), "dfgdf","dfgdfg",new Integer(5),new Boolean(true),"ertretr@yahoo.fr.com","Vente"},
                {"DESS", new Integer(10), new Integer(10), "dfgdfgfd", "dfgdfgd", new Integer(8), "dfgdfg","dfgfdg",new Integer(5),new Boolean(true),"retret@yahoo.com","Sport"},
                {"DEA", new Integer(10), new Integer(10), "dfgdfg", "dfgdfg", new Integer(8), "dfgdf","dfgdfg",new Integer(5),new Boolean(true),"retre@yahoo.fr","Vente"}};
     
    		tm=new TabModele(data,columnNames);
    		tabDiplome=new JTable(tm);
    		spDiplome=new JScrollPane(tabDiplome);
    Quoi modifier dans la tablemodel?

    @sylvain_2020: merci. g déjà cherché avant. (forum, google)
    je trouve bien des méthodes qui m'indique quand il y a une modification, mais rien sur comment modifier....
    Est ce qu'il faut recréer les 2 tableaux: Object donnees[][] String colonnes[]

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Si tu veux pourvoir modifier le nombre de ligne, il vaut mieux utiliser une List plutot qu'un tableau à deux dimension parce que l'ajout de ligne dans un tableau est plutot chiant à gérer...
    Tu peux utiliser une liste qui contient des tableau qui représente une ligne...

    Ensuite, il te suffit danc de faire un méthode addLigne() dans ton model, qui rajoute une ligne dans ton objet donnees. ensuite il te suffit d'utiliser la méthode fireTableRowsInserted() d'AbstractTableModel pour prévenir la JTable du changement...

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void addLigne (Object[] ligne) {
     
    	// Ajout de ligne dans le tableau donnees
    	// index recoit l'index de cette nouvelle ligne
     
    	fireTableRowsInserted ( index, index );
    }
    a++

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    thx adiGuba c ça marche
    attention cependant, le vetor doit être déclaré ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Vector<Object[]> donnees=new Vector<Object[]>();
    sinon on a droit un warning du compilateur à chaque appel de la méthode "add" de Vector.

    par contre j'ai essayer d'ajouter une ligne vierge (avec toutes les cellules vides) en initialisant les éléments du tableau représentant la ligne à null mais ça ne marche pas
    Mais bon comme mon but n'est pas d'ajouter des lignes vides....

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

Discussions similaires

  1. Réponses: 21
    Dernier message: 24/06/2014, 12h28
  2. Réponses: 3
    Dernier message: 23/05/2008, 14h52
  3. Réponses: 7
    Dernier message: 11/06/2007, 20h39
  4. [Jtable] taille lignes
    Par calypso dans le forum Composants
    Réponses: 2
    Dernier message: 21/07/2004, 17h51
  5. [C#] Nouvelle ligne ds la constante
    Par Thomas Lebrun dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/06/2004, 21h38

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