Jtable

Résolu
cs_khatouma Messages postés 12 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 13 avril 2008 - 10 mars 2008 à 18:01
KenZara Messages postés 112 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 20 décembre 2011 - 12 mars 2008 à 14:16
salut tout le monde
je travaille avec netbeans  et quant je cree une jtable avec ses column et tout
dans cette cas il gere son propre modeltable
bon j'ai besoin cmt puis -je  ajouter dans une jtable en etulisant les defaultmodel
svp ce tres urgent
marci pr votre comprehension
rq (sgdbr = mysql)

11 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 mars 2008 à 19:00
Salut,

Quel est le rapport avec mysql... ?

regarde les sources du sites, tu trouvera pleins de sources utilisant un JTable avec un defaultModel.
______________________________________
DarK Sidious
3
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
11 mars 2008 à 00:39
Le code généré par NetBeans est du type:

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));

Pour accéder au TableModel, il suffit de faire:

        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
        model.addRow(...);
3
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
11 mars 2008 à 12:32
C'est quoi ton problème maintenant? Est-ce que tu as un message d'erreur? Est-ce que la structure du Vector "objects" correspond bien à la structure d'une seule ligne de la JTable?
3
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
11 mars 2008 à 17:51
Il faut construire un Vector "rowData" avec les colonnes:

for (int i = 0; i < objects.size(); i++) {
    Vector rowData = new Vector();
    rowData.add(((Client) objects.get(i)).getSomeData1());
    rowData.add(((Client) objects.get(i)).getSomeData2());
    ...
    model.addRow(rowData);
}
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_khatouma Messages postés 12 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 13 avril 2008
11 mars 2008 à 10:57
merci pour votre comprehension
//objects  est une vector

  objects = this.getHotelDb().extractAllClient();
        DefaultTableModel model = (DefaultTableModel) table1.getModel();
        model.addRow(objects);
normalement je dois avoir mon jtable remplis dans la chargement de la forme
doit etre inisialiser par les champs que la table client contient
merci bien  pour votre aide
0
cs_khatouma Messages postés 12 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 13 avril 2008
11 mars 2008 à 13:06
le probleme ce que jtable n'affiche rien mais elle ajoute unne ligne vide 

 public void initTable()
 {     
objects = this.getHotelDb().extractAllClient();
DefaultTableModel model = (DefaultTableModel) table1.getModel();
model.addRow(objects); 
 }

 private void cmd_ajouterActionPerformed(java.awt.event.ActionEvent evt) {                                           
    
        DefaultTableModel model = (DefaultTableModel) table1.getModel();
       // model.addRow(objects);
        JButton b = (JButton) evt.getSource();
        if (b.getText().equals("Ajouter")) {


            if (checkValues()) {
                Client clt = this.getClient();
                this.getHotelDb().addElement("client", clt.toStringArray());
                objects.add(clt);
                model.addRow(objects);
          //     System.out.println("l objects "+ clt.toString());
                init();
              //  System.out.println(table1.countComponents());
            }
        }
    }

la classe client avec les methodes d acce
hoteldatabase ou je stok tout mes requttes

// hotel database
    public Client extractClient(String num_client)
    {
        ResultSet rs = this.getDb().executeQuery("select * from client" +"where num_client="+ num_client+"and nom!='' and prenom!='' and cin!='' and adress!='' and email!='' and telephone!=''");
        Vector clt=this.selectClient(rs);
        if(clt.size()>0)
        return (Client)clt.get(0);
        return null;
    }

  public Vector selectClient(ResultSet rs)
    {
        Vector clients=new Vector();
        Client clt = null;
        try{
            while(rs.next())
            {
clt=new Client(rs.getString(0),rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6));            
            }
            clients.add(clt);
            rs.close();
        }
        catch(Exception e){
   
        }
       return clients;
     }
merci
0
cs_khatouma Messages postés 12 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 13 avril 2008
12 mars 2008 à 11:26
merci bien
maintenant le probleme ce que il ajoute tout l 'objet dans la premiere colone de jtable "num_client"

 public void initTable()
 {    
objects = this.getHotelDb().extractAllClient();
DefaultTableModel model = (DefaultTableModel) table1.getModel();
Vector rowData = new Vector();
for (int i = 0; i < objects.size(); i++) {
  
   rowData.add(((Client) objects.get(i)).getNum_client());
   rowData.add(((Client) objects.get(i)).getNom());
   rowData.add(((Client) objects.get(i)).getPrenom());
   rowData.add(((Client) objects.get(i)).getCin());
   rowData.add(((Client) objects.get(i)).getAdress());
   rowData.add(((Client) objects.get(i)).getEmail());
   rowData.add(((Client) objects.get(i)).getTephone());
     model.addRow(rowData);
 }
}

    private void cmd_ajouterActionPerformed(java.awt.event.ActionEvent evt) {                                           
    
        DefaultTableModel model = (DefaultTableModel) table1.getModel();
       // model.addRow(objects);
        JButton b = (JButton) evt.getSource();
        if (b.getText().equals("Ajouter")) {
            if (checkValues()) {
                Client clt = this.getClient();
                this.getHotelDb().addElement("client", clt.toStringArray());
                System.out.println(clt);
                objects.add(clt);
               
                model.addRow(objects);
               // System.out.println(objects.get(0));
               // System.out.println(model);
               // init();
                        }
        }
    } 
0
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
12 mars 2008 à 12:07
Il faut inverser ceci:

Vector rowData = new Vector();
for (int i = 0; i < objects.size(); i++) {

---------------------->
for (int i = 0; i < objects.size(); i++) {
    Vector rowData = new Vector();

Il faut adapter ceci de la même manière, comme j'ai déjà expliqué avant:

                model.addRow(objects);
0
cs_khatouma Messages postés 12 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 13 avril 2008
12 mars 2008 à 12:15
desolee mais j'ai pas compris exactement ce que tu veux dire
j'ai fais la meme chose que tu m'a di mais ce si ajoute dans une seule colone toute l objet
je vous remercie de votre gentillesse
0
cs_khatouma Messages postés 12 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 13 avril 2008
12 mars 2008 à 12:55
salut mr Urhand
je sais que j'ai trops exageré mais j'ai un projet a faire et moi je suis debutante en java  ce tt
merci de votre comprehension
0
KenZara Messages postés 112 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 20 décembre 2011
12 mars 2008 à 14:16
Bonjour,

J'ai une question, quand est ce que tu n'arrives pas à voir tes enreg ?
As tu fait comme l'a dit [auteur/UHRAND/779037.aspx uhrand] de mettre directement Vector rowData = new Vector(); dans ta boucle For ?
Et quand tu cliques sur le boutton d'ajout, il faudrait reprendre le même principe...

Kenza
0
Rejoignez-nous