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 Dynamique SWing


Sujet :

Composants Java

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut JTable Dynamique SWing

    J’ai un vecteur de classe personne cette dernière contient trois attribut : nom,prenom,age
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class personne{
    private String nom;
    private String prenom;
    private int nom;
    }
    Vector<personne> V=new Vector();
    Je veux les schematiser dans un tableau en swing:

    String colonne={« NOM », « PRENOM», « AGE »};
    Donnee ???
    JTable T=new JTable(donnee,colonne) ;



    Comment je déclare donnée car leur écriture est dynamique ?
    Avec JTable on peut changer les valeurs des cellules y a pas une methode pour afficher les donnée en lecture simple sans qd puisse modifier les valeurs des cellules
    Merci pour vos aides

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut
    Merci pour le lien pour faq
    Bon j’ai des questions peu etre je dis des betises mais je veux comprendre le principe de fonctionnement de JTable
    1)Pour le remplissage de jtable de facon dynamique,est ce que je suis oblige d’utilser un model par defaut ou je definit mon propre model
    2) j’ai ajoute un bouton pour supprimer la ligne selectionn mais j’ai probleme quel instruction a mettre ??

    Voici 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
    import javax.swing.*;
     
     
    public class tableau implements ActionListener {
    JFrame f=new JFrame();
    JPanel p=new JPanel();
    JButton A=new JButton("Supprimer");
     
    Object[][] donnees ;
    String[] titreColonnes = {"Nom","Prenom","Age"};
    JTable table;
    Vector <personne> VP;
    tableau()
    {
    	VP=new Vector();
    	personne m=new personne("ali","ki",12);
    	personne n=new personne("ttt","hhh",32);
    	personne o=new personne("fff","ki",92);
    	VP.addElement(m);
    	VP.addElement(n);
    	VP.addElement(o);
     
    	donnees=new Object[VP.size()][titreColonnes.length];
    	for(int i=0;i<VP.size();i++)
    	{
    		personne P=VP.get(i);
    		donnees[i][1]=P.getnom();
    		donnees[i][2]=P.getprenom();
    		donnees[i][3]=P.getage();
     
    	}
    	table = new JTable(donnees, titreColonnes);
    	table.setPreferredScrollableViewportSize(new Dimension(400, 80));
        JScrollPane scrollpane = new JScrollPane(table);
      	A.addActionListener(this);	
    	p.add(scrollpane);
    	p.add(A);
    	f.getContentPane().add(p);
    	f.setVisible(true);
     
    }
    	/**
             * @param args
             */
    	public static void main(String[] args) 
    	{
    		// TODO Auto-generated method stub
    		tableau T=new tableau();
    	}
    	public void actionPerformed(ActionEvent e)
    	{
    		if(e.getSource()==A)
    		{
             int ligne_sel=table.getSelectedRow();
             if(ligne_sel!=-1)
             {
            	// 	 table.delete_row(ligne_sel);//supprimer la ligne
             }
    		}
     
    	}
    }
    merci pour vos aides

  4. #4
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Pour le remplissage de jtable de facon dynamique,est ce que je suis oblige d’utiliser un model par defaut ou je definit mon propre model
    si le modèle par défaut te convient alors utilise le , parceque créer son propre modèle implique un peu plus de reflexion pour implementer toutes les méthodes demandées.

    j’ai ajoute un bouton pour supprimer la ligne selectionn mais j’ai probleme quel instruction a mettre ??
    essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taTable.getModel().remove(ligneselectionnee)

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut
    bonjour, j'ai change ds mon code pour quil puisse herite de model par defaut
    et j'ai redefini is celleditabble mais elle ne fonctionne pas je ne sais pas la cause ainsi pour taTable.getModel().remove(ligneselectionnee) ne marche pas
    voici mon nouveau 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    import java.awt.Dimension;
    import java.awt.Point;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Vector;
    import javax.swing.*;
    import javax.swing.table.DefaultTableModel;
     
     
    public class tableau extends DefaultTableModel implements ActionListener {
    JFrame f=new JFrame();
    JPanel p=new JPanel();
    JButton A=new JButton("Supprimer");
     
    Object[][] donnees ;
    String[] titreColonnes = { "Num","Nom","Prenom","Age"};
    JTable table;
    ArrayList <personne> VP;
    tableau()
    {
    	VP=new ArrayList();
    	personne m=new personne("ali","ki",12);
    	personne n=new personne("Fabien","hhh",32);
    	personne o=new personne("salah","ki",92);
    	VP.add(m);
    	VP.add(n);
    	VP.add(o);
     
    	donnees=new Object[VP.size()][titreColonnes.length];
    	for(int i=0;i<VP.size();i++)
    	{
    		personne P=VP.get(i);
    		donnees[i][1]=P.getnom();
    		donnees[i][2]=P.getprenom();
    		donnees[i][3]=P.getage();
     
    	}
    	table = new JTable(donnees, titreColonnes);
    	table.setPreferredScrollableViewportSize(new Dimension(400, 80));
     
        JScrollPane scrollpane = new JScrollPane(table);
       // VP.addAll((Collection<? extends personne>) new personne (2, 3));
      	A.addActionListener(this);	
    	p.add(scrollpane);
    	p.add(A);
    	f.getContentPane().add(p);
    	f.setVisible(true);
     
    }
    public boolean isCellEditable (int row, int column) {
     
     
              return ( false );
     
    } 
     
    /**
             * @param args
             */
    	public static void main(String[] args) 
    	{
    		// TODO Auto-generated method stub
    		tableau T=new tableau();
    	}
    	public void actionPerformed(ActionEvent e)
    	{
    		if(e.getSource()==A)
    		{
             int ligne_sel=table.getSelectedRow();
             if(ligne_sel!=-1)
             {
     
            	// 	 table.delete_row(ligne_sel);//supprimer la ligne
             }
    		}
     
    	}
    }
    Merci enormement

  6. #6
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    je crois que tu confonds plusieurs notions différentes , je t'invite à lire ce ce tutoriel sur le JTable et son utilisation

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut Merci
    Merci pour le faq, il m’a aider beucoup mais il me reste un probleme de suppression d’une ligne selectione j’ai ajoute l’instruction que vous m’avez conseille mais il affiche ererur d’exception
    Voici mon nouveau code
    Classe :
    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
     
    import javax.swing.table.AbstractTableModel;
    public class Model_Personne extends AbstractTableModel {
     
    		private Object[][] donnees;
    		private final String[] titres;
     
    		public Model_Personne(Object donnees[][], String titres[]) {
    			this.donnees = donnees;
    			this.titres = titres;
    		}
     
    		public int getColumnCount() {
    			return donnees[0].length;
    		}
     
    		public Object getValueAt(int parm1, int parm2) {
    			return donnees[parm1][parm2];
    		}
     
    		public int getRowCount() {
    			return donnees.length;
    		}
     
    		public String getColumnName(int col){
    			return titres[col];
    		}
     
    		public boolean isCellEditable(int row, int col) {
    			return false;
    		}
    		void delete_Row(int x)
    		{
    			int first=x*getColumnCount();
    			int last=first+getColumnCount();
    			//qoui mettre ici???
    		}
     
    }

    //
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
     
     
    public class Frame implements ActionListener {
     
     
    private	JFrame f;
    private	JPanel p;
    private	JButton A;
    private JTable table;
    private JScrollPane scrollpane;
     
    private Vector<personne> VP;
     
    private Object[][] mesResultats;
     
    private String [] columns = {"Nom", "Prenom", "Age"};
     
    public Frame ()
    {
    	f=new JFrame();
    	p=new JPanel();
    	A=new JButton("Supprimer");
    	A.addActionListener(this);
     
     
    	//
    	personne P1= new personne("Fabbien","Pierre",23);
    	personne P2= new personne("XXX","AAAe",23);
    	VP=new Vector();
    	VP.add(P1);
    	VP.add(P2);
     
    	personne tmp;
    	mesResultats = new Object[VP.size()][columns.length];
    	for (int i = 0 ; i < VP.size() ; i++) {
    		tmp = VP.get(i);
    		mesResultats[i][0] = tmp.getnom();
    		mesResultats[i][1] = tmp.getprenom();
    		mesResultats[i][2] = tmp.getage();
     
    	}
     
     
    	table = new JTable(new Model_Personne(mesResultats,columns));
    	scrollpane= new JScrollPane(table);
     
    	p.add(scrollpane);
    	p.add(A);
    	f.getContentPane().add(p);
    	f.setVisible(true);
    }
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Frame instanc=new Frame();
    	}
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    		if (arg0.getSource()==A)
    		{	 
    			 int ligne_selec=table.getSelectedRow();
    			 System.out.print(ligne_selec);
    			 if(ligne_selec!=-1)
    			 {
    				 ((Container) table.getModel()).remove(ligne_selec);
    			 }
     
    		     //table.updateUI();
    		}
     
    	}
     
    }
    Merci pour vos aides

  8. #8
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void delete_Row(int x)
    		{
    			int first=x*getColumnCount();
    			int last=first+getColumnCount();
    			donnees.supprimer // il faut supprimer les données ici
                            FireTableDataChanged(); // je suis pas sur 
    		}
    pourquoi ne pas utiliser un arrayList pour faciliter la suppression .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    VP=new arrayList();
    	VP.add(P1);
    	VP.add(P2);
     
            // aprés
           table = new JTable(new Model_Personne(VP,columns));
    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 Model_Personne extends AbstractTableModel {
     
    		private arrayList donnees;
    		private final String[] titres;
     
    		public Model_Personne(arrayList donnees, String titres[]) {
    			this.donnees = donnees;
    			this.titres = titres;
    		}
     
    		public int getColumnCount() {
    			return donnees[0].length;
    		}
     
    		public Object getValueAt(int parm1, int parm2) {
    			return donnees.getElement(ligne);
    		}
     
    		public int getRowCount() {
    			return donnees.length;
    		}
     
    		public String getColumnName(int col){
    			return titres[col];
    		}
     
    		public boolean isCellEditable(int row, int col) {
    			return false;
    		}
    		void delete_Row(int x)
    		{
    			int first=x*getColumnCount();
    			int last=first+getColumnCount();
    			arrayList.remove(ligne);
                            FireTableDataChanged(); 
    		}
     
    }
    les méthodes du modèle doivent changer pour s'adapter à la classe arrayList
    pour les fonctions de la classe arrayList à toi de chercher la syntaxe exacte .

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut
    Merci pour votre aide,
    j'ai changer en arraylist mais le code de fonction delete donne vont etre seront supprime de model ou de arraylist???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void delete_Row(int x)
    		{
    			int first=x*getColumnCount();
    			int last=first+getColumnCount();
    			//donnee seront supprime de modeel ou de arraylist
    			fireTableDataChanged(); 
    		}


    Merci

  10. #10
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut
    j'ai modifier en arraylist mais le probleme reste encore est ce que je suuprime ds
    arraylist et donnes il faut les deux comment faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void delete_Row(int x)
            {
                int first=x*getColumnCount();
                int last=first+getColumnCount();
                for(int i=0;i<getColumnCount();i++)
                {
                    //(donnees[x][i])
                }
                //donnee seront supprime de modeel ou de arraylist
                fireTableDataChanged(); 
            }

    Merci

  11. #11
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    quand tu fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.donnees = donnees;
    tu passes la référence de ton arrayList qui contient les données , donc y a en fait qu'un seul ensemble de données

  12. #12
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut svp aide
    j'ai essaye
    donnees. mais yapas fonction remove
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    int first=x*getColumnCount();
    int last=first+getColumnCount();
    for(int i=0;i<getColumnCount();i++)
    {
       donnees.
    }
    comment je dois la supprimer
    vraiment j'ai pas trouve la solution

  13. #13
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut

    SVP, j'avance pas de tout, j'ai pas trouve l'instruction qui me permet de supprimer la ligne de donnes[], ou je dois change dans mon code
    SVP
    Je commence à me despere
    Merci pour vos aides

  14. #14
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Si donnees est bien une ArrayList (ou toute auter implémentationde l'interface List), alors elle possède bien la méthode remove et dans ce cas il te suffit juste de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void deleteRow(int rowIndex) {
        donnees.remove(rowIndex);
        fireTableRowsDeleted(rowIndex,rowIndex); //pour notifier la suppression de la ligne à tous les composants ayant posé un listener sur le model
    }
    Où rowIndex correspond au numéro de la ligne à supprimer

    ++

  15. #15
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut nouveau code
    salut,
    j'ai refait mon code de zero et le probleme de suppresion est resolu lorsque j'ai change de donnee[][] en arraylist
    mais un autre probleme qui a survenu lors de ce changement
    il n'affiche pas les valeurs exactes des champs mais des valeurs imcoprehensible telsque personne@8721 je pense que le pb reside ds la fonction getValueAt

    voici mon nouveau code pour etre mieux clair
    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
     
    import java.util.ArrayList;
    import javax.swing.table.AbstractTableModel;
     
    public class Model_Personne extends AbstractTableModel {
     
    		private ArrayList<personne> donnees;
    		private final String[] titres;
     
    		public Model_Personne(ArrayList donnees, String titres[]) {
    			this.donnees = donnees;
    			this.titres = titres;
    		}
    		public int getRowCount() {
    			return this.donnees.size();
    		}
    		public int getColumnCount() {
    			return this.titres.length;
    		}
    		public String getColumnName(int col){
    			return titres[col];
    		}
    		public boolean isCellEditable(int row, int col) {
    			return false;
    		}
    		//
             public void deleteRow(int rowIndex) {
                    donnees.remove(rowIndex);
                    fireTableRowsDeleted(rowIndex,rowIndex); //pour notifier la suppression de la ligne à tous les composants ayant posé un listener sur le model
             }
     
     
    		public Object getValueAt(int arg0, int arg1) {
    			// TODO Auto-generated method stub
    			return this.donnees.get(arg0);
    		}
    }
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import javax.swing.*;
     
    public class Frame implements ActionListener {
     
    private	JFrame cadre;
    private	JPanel pane;
    private	JButton bouton_sup;
    private JTable table;
    private JScrollPane scrollpane;
    private ArrayList<personne> VP;
    private String [] columns = {"Nom", "Prenom", "Age"};
     
     
    public Frame ()
    {
    	cadre=new JFrame();
    	pane=new JPanel();
    	bouton_sup=new JButton("Supprimer");
    	bouton_sup.addActionListener(this);
    	//
    	personne P1= new personne("Fabbien","Pierre",23);
    	personne P2= new personne("XXX","AAAe",23);
    	personne P3= new personne("AAAA","EEEE",23);
    	VP=new ArrayList();
    	VP.add(P1);
    	VP.add(P2);
    	VP.add(P3);	
     
     
    	table = new JTable(new Model_Personne(VP,columns));
    	scrollpane= new JScrollPane(table);
    	pane.add(scrollpane);
    	pane.add(bouton_sup);
    	cadre.getContentPane().add(pane);
    	cadre.setVisible(true);
    }
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Frame instanc=new Frame();
    	}
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    		if (arg0.getSource()==bouton_sup)
    		{	 
    			 int ligne_selec=table.getSelectedRow();
    			 System.out.println("Numero ligne selectionee est "+ligne_selec);
    			 int res=JOptionPane.showConfirmDialog(null,
     
    			            "Voulez vous vraiment suuprimer cette règle", "Supprimer Règle", JOptionPane.YES_NO_OPTION);
    			 if(res==JOptionPane.YES_OPTION)
    			 {
    			 if(ligne_selec!=-1)
    			 {
    				 ((Model_Personne) table.getModel()).deleteRow(ligne_selec);
     
    			 }  
    			 }
    		}
    	}
    }
    s'il vous plait comment il va afficher la vrai valeur de nom,prenom et non pas de personne@1234...
    Merci pour votre aides

  16. #16
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    On va y aller de façon pédagogique...

    Dans ton getValueAt, que penses tu que renvoie l'appel suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return this.donnees.get(arg0)
    ?

  17. #17
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut
    Ce code
    m'a renvoyer le nom de classe personne
    et moi je veux il affiche pour chaque case sa propre valeur

  18. #18
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah pour l'instant ton appel renvoie un objet du type Personne, donc son toString renvoie le nom de la classe suivi de son adresse (méthode toString par défaut de la class Object).

    Ce qu'il faut que tu fasse est d'analyser le deuxième paramètre du getValueAt(int row, int col) qui correspond à la colonne, et renvoie l'attribut de l'objet personne voulu.

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public Object getValueAt(int row, int col) {
       Personne p = (Personne) donnes.get(row);
       if (col == 0) {
          return p.getNom();
       } else if( col == 1) {
          return personne.getPrenom();
       } else if( col == 2) {
          //et ainsi de suite...
       } else {
          return null;
       }
     
    }
    Faut réfléchir un peu de temps en temps....
    ++

  19. #19
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 294
    Par défaut Remerciement
    Merci j'ai pas cru que arg1 c'est la clone
    sa marche MMMMMMMerci pour votre aide j'ai passer presque une semaine mais on a appris beacoup de chose
    encore merci beaucoup

  20. #20
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Citation Envoyé par ALIAS200
    Merci j'ai pas cru que arg1 c'est la clone
    Bah suffit de lire la doc un tant soit peu...
    Sans la lire tu n'iras pas loin en java...

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

Discussions similaires

  1. JTable dynamique : ajouter des lignes
    Par koolway dans le forum Composants
    Réponses: 6
    Dernier message: 17/06/2010, 16h41
  2. JTable dynamique colonnes
    Par cotede2 dans le forum Composants
    Réponses: 4
    Dernier message: 07/06/2009, 01h29
  3. Insertion ligne JTable dynamiquement
    Par homereddoub dans le forum Composants
    Réponses: 1
    Dernier message: 21/03/2009, 15h00
  4. Jtable dynamique avec base de données
    Par sisi37 dans le forum Composants
    Réponses: 5
    Dernier message: 17/10/2008, 17h01
  5. JTable dynamique ?
    Par sandytarit dans le forum Composants
    Réponses: 18
    Dernier message: 19/01/2007, 09h56

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