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

 Java Discussion :

Ajout dans JTable


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 28
    Par défaut Ajout dans JTable
    Bonjour ,

    j'essaie d'ajouter dans une jtable, suivant un tutoriel vu sur le net.
    Mais le code si dessous n'ajoite rien a la Jtable , lorsque je clic sur le bouton "Ajouter"

    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
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JButton;
    import javax.swing.JPanel;
     
    public class FenetreJtable extends JFrame {
    	private  JPanel PanBoutons=new JPanel();
    	private JButton BtnAjout=new JButton("Ajouter");
    	private JButton BtnSupp=new JButton("Supprimer");
    	public FenetreJtable(){
    		super();
    		setTitle("Fenetre de Jtable");
    		setSize(560,285);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setLocationRelativeTo(null);
    		PanBoutons.add(BtnAjout);
    		PanBoutons.add(BtnSupp);
    		JTable laTable=new JTable(new ModelDynamikObjets());
    		BtnAjout.addActionListener(new AjoutListener());
    		getContentPane().add(new JScrollPane(laTable),BorderLayout.CENTER);
    	    getContentPane().add(PanBoutons,BorderLayout.SOUTH);
    	}
    	class AjoutListener implements ActionListener{		
    		@Override
    		public void actionPerformed(ActionEvent event) {
    			new ModelDynamikObjets().addAmi(new Ami("blaise", "mpula", Color.GREEN, false, Sport.FOOTBALL));
    			System.out.println("yes");
    		}
    	}
     
    	public static void main(String[] args) {
    		new FenetreJtable().setVisible(true);
    	}}
    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
    import java.awt.Color;
    import java.util.ArrayList;
     
     
    import javax.swing.table.AbstractTableModel;
     
     
    public class ModelDynamikObjets extends AbstractTableModel{
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private final ArrayList<Ami> amis=new ArrayList<Ami>();
    	private final String []entetes={"nom","prenom","couleur","homme","Sport"};
     
    	public ModelDynamikObjets(){
    		super();
    		amis.add(new Ami("ouf","confiseri",Color.RED,true,Sport.TENNIS));
    		amis.add(new Ami("bande","essai",Color.blue,false,Sport.NATATION));
    		amis.add(new Ami("only","java",Color.RED,true,Sport.TENNIS));
    		amis.add(new Ami("jtable","dynamik",Color.BLACK,true,Sport.FOOTBALL));
    		amis.add(new Ami("modele","test",Color.YELLOW,true,Sport.RIEN));
    		amis.add(new Ami("for","an",Color.BLACK,true,Sport.NATATION));
    		amis.add(new Ami("example","thanks",Color.RED,true,Sport.TENNIS));
    	}
    	@Override
    	public int getColumnCount() {
    		// TODO Auto-generated method stub
    		return entetes.length;
    	}
     
    	@Override
    	public int getRowCount() {
    		// TODO Auto-generated method stub
    		return amis.size();
    	}
     
    	@Override
    	public Object getValueAt(int rowindex, int ColumnIndex) {
    		// TODO Auto-generated method stub
    		switch (ColumnIndex) {
    		case 0:
    			return amis.get(rowindex).getNom();
    		case 1:
    			return amis.get(rowindex).getPrenom();
    		case 2:
    			return amis.get(rowindex).getCouleur();
    		case 3:
    			return amis.get(rowindex).isHomme();
    		case 4:
    			return amis.get(rowindex).getSport();
    		default:
    			return null;
    		}	}
     
    	public String getColumnName(int ColumnIndex) {
    		return entetes[ColumnIndex];		
    	}
     
    	public void addAmi(Ami ami){
    		amis.add(ami);
    		fireTableRowsInserted(amis.size()-1, amis.size()-1);
    	}
    	public void removeAmi(int RowIndex){
    		amis.remove(RowIndex);
    		fireTableRowsDeleted(RowIndex, RowIndex);
    	}}
     
    Merci de m'indiquer ce qui manque a ce code

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    l'erreur fondamentale de ton code se trouve ici, surlignée en rouge ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class AjoutListener implements ActionListener{		
    		@Override
    		public void actionPerformed(ActionEvent event) {
    			new ModelDynamikObjets().addAmi(new Ami("blaise", "mpula", Color.GREEN, false, Sport.FOOTBALL));
    			System.out.println("yes");
    		}
    	}
    C'est dans l'instance de modèle (ModelDynamikObjets) de la jtable qu'il faut ajouter les nouvelles données, pas dans une instance qui n'a strictement aucun lien avec la table : comment pourrait elle connaitre les données que tu y mets.

    par exemple tu fais (j'ai mis que les bouts de code concernés) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ModelDynamikObjets model = new ModelDynamikObjets();
    		JTable laTable=new JTable(model);
    		BtnAjout.addActionListener(new AjoutListener(model));
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class AjoutListener implements ActionListener{		
     
    		private ModelDynamikObjets model;
     
    		public AjoutListener(ModelDynamikObjets model) {
    			this.model=model;
    		}
     
    		@Override
    		public void actionPerformed(ActionEvent event) {
    			model.addAmi(new Ami("blaise", "mpula", Color.GREEN, false, Sport.FOOTBALL));
    			System.out.println("yes");
    		}
    	}
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Inscrit en
    Février 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 28
    Par défaut
    Merci, ouf les objets!

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

Discussions similaires

  1. Ajouter valeur dans JTable
    Par totot dans le forum Composants
    Réponses: 0
    Dernier message: 16/05/2015, 12h15
  2. ajoute un jtable dans un autre jtable !
    Par riamo dans le forum Composants
    Réponses: 2
    Dernier message: 19/05/2013, 21h10
  3. comment ajouter un Jbutton dans Jtable ?
    Par riamo dans le forum NetBeans
    Réponses: 2
    Dernier message: 07/05/2013, 12h48
  4. Ajouter contenu JTextField dans JTable
    Par laurent2403 dans le forum Débuter
    Réponses: 2
    Dernier message: 18/09/2012, 10h48
  5. Ajouter et supprimer des enregistrement dans JTable
    Par aidedoyen dans le forum Composants
    Réponses: 1
    Dernier message: 02/04/2008, 12h17

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