Probleme Affichage JTable

Résolu
mikomiko Messages postés 12 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 28 février 2007 - 30 oct. 2006 à 08:47
mikomiko Messages postés 12 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 28 février 2007 - 1 nov. 2006 à 14:04
Bonjour chers ami, je viens de passer la nuit a essayer d'afficher une JTable :( pourriez vous m'aider s'il vous plait, je suis debutant...

Voila en quelques mots, jai une class "recherche" qui recupere des donnees dans un fichier, le resultat de cette recherche est stockee dans un Vector, J'ai ensuite ma class principale avec mon main(). celle ci recupere le Vector de la class "recherche" a traversun getters.
Ma class "main()" extends JFrame et comporte un JPanel BorderLayout(), dans le nord de ce JPanel se trouve un textField et un bouton "ok", sur ce bouton il y a un ecouter qui cree une instance de ma class recherche en passant le contenu du textField en parametre.
Jusque la rien de sorcier, cependant dans ce meme ecouter apres avoir cree ma JTable, j'en fait un add sur mon JPanel BorderLayout.SOUTH, mais la rien ne s'affiche !!!! Cependant il suffit d'agrandir la fenetre pour voir afficher la JTable !!!
Il doit s'agir d'un refresh de la fenetre qui ne se fait pas automatiquement.... jai donc mis juste apres mon panel.add(JTable), un panel.repaint()... mais la encore rien ne se passe sans que je doive agrandir la Fenetre.

[.....]
JButton send = new JButton("OK");
            send.addActionListener(
                    new ActionListener() {
                        public void actionPerformed(ActionEvent evt){
                        word = searchName.getText();

                        SearchElement elem = new SearchElement(word);
                        Vector titre = new Vector();
                        titre = elem.getTitre();
                        Vector cellules = new Vector();
                        cellules = elem.getCellules();

                        jTab= new JTable(cellules,titre);
                       
                        inTab.add(new JScrollPane(jTab));
                        inTab.repaint();
                    }
                }
            );
 
 searchPane.add(send);       
 mainPanel.add(searchPane,BorderLayout.CENTER);

inTab= new JPanel(new FlowLayout());
mainPanel.add(inTab,BorderLayout.SOUTH);

[......]

MERCI pour votre aide qui me permettra d'avancer car je fais du sur place !!!
Miko

10 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 oct. 2006 à 16:32
Salut,

pour l'explication quand tu fais
DefaultTableModel model = (DefaultTableModel) getTable().getModel();
ici tu travail dirrectement avec la réference donc des que tu change un truc c'est imlpacté dirrectement.

sinon dsl j'ai fais une erreur dans le code c'est pour cela que ca ne fonctionne pas donc voici une petite application fonctionnelle avec ajout de lignes dynamiquement :

import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Test extends JFrame implements ActionListener{
    private static final long serialVersionUID = 388156732422612619L;
    private ScrollJTable table = null;
    private JButton btAddRow = null;
   
    public Test(){
       
        table = new ScrollJTable(
                new String[]{
                        "numero", "Titre", "Auteur/Compositeur",
                        "Annee de Sortie", "Disponible depuis le",
                        "Etat", "Agence", "Type", "Disponible"});
        btAddRow = new JButton("Ajouter une ligne");
        btAddRow.addActionListener(this);
       
       
       
        JPanel p = new JPanel();
        p.add(table);
        p.add(btAddRow);
        setContentPane(p);
       
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
   
    public void actionPerformed(ActionEvent e) {
        if(e.getSource().equals(btAddRow)){
            Vector<Object> rowData = new Vector<Object>();
            //juste pour mettre un truc
            Random rnd = new Random();
            rowData.add(""+rnd.nextInt());
            rowData.add(""+rnd.nextBoolean());
            rowData.add(""+rnd.nextDouble());
            rowData.add(""+rnd.nextLong());
            rowData.add(""+rnd.nextGaussian());
            rowData.add(""+rnd.nextInt());
            rowData.add(""+rnd.nextBoolean());
            rowData.add(""+rnd.nextDouble());
            rowData.add(""+rnd.nextLong());
            table.addRow(rowData);
        }
       
    }
   
    public static void main(String[] args) {
        new Test().setVisible(true);
    }

   
}

class ScrollJTable extends JScrollPane{
    private static final long serialVersionUID = -5329054671530439333L;
    private JTable table = null;
   
    public ScrollJTable(String [] header){
        DefaultTableModel model = new DefaultTableModel();
        for (String s : header)
            model.addColumn(s);
        getTable().setModel(model);//ici on passe dirrectement par la reference sur le jtable
        getViewport().add(getTable());
        //taille par defaut
        setPreferredSize(new Dimension(300, 200));
    }
   
    private JTable getTable() {
        if (table == null) {
            table = new JTable();
            //supprime le drag and drop
            table.getTableHeader().setReorderingAllowed(false);
            //on passe le tritre en gras
            table.getTableHeader().setFont(
                    new Font(getTable().getFont().getFamily(),
                            Font.BOLD, getTable().getFont().getSize()));
        }
        return table;
    }
   
    public void addRow(Vector<Object> rowData){
        DefaultTableModel model = (DefaultTableModel)getTable().getModel();
        model.addRow(rowData);
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 oct. 2006 à 09:24
Salut,

pour commencer évite de creer une nouvelle instance de ton jtable à chaque clic sur le bouton... ensuite j'épère que ta classe SearchElement est un thread si oui que ses methode getXXX sont synchro par ce que si le traitement est assez long tu fige ton appli....

sinon dans l'imédia essai vec les méthodes revalidate() et invalidate de ton jpanel... mais pourquoi ne pas simplement jouer avec setVisible du jtable?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
mikomiko Messages postés 12 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 28 février 2007
30 oct. 2006 à 10:43
Bonjour Twinuts !!!
Merci beaucoup pour ta reponse. elle m'a permit de me rendre compte de ma stupidite. construire ma JTable dans mon main() etait stupid alors qu'il suffisait de la construire directement dans ma class recherche, et ensuite de l'afficher dans le main a l'appel du Listener() !!!!

Cependant maintenant lors je lance une recherche, la premiere est nikel (a part la taille de la Jtable :) mais lorsque je fais une deuxieme recherche mon Listener refait un add qui vient ce mettre par dessus la premiere recherche est ainsi de suite....
Je peux me permettre de mettre le code de la class main() stp !


package org.afcepf.ai69.groupe4.gestionce;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GestionCEMain extends JFrame{

    String word=null;
    JTextField searchName=null;
    JPanel mainPanel=null;
    JPanel resultPane=null;

    GestionCEMain(){
        super("Gestion Comite d'Entreprise");

        //****** NORTH PANEL ******
        super.setLayout(new BorderLayout());
        JLabel j = new JLabel(new ImageIcon("img/bg-JFrame.jpg"));
        j.setSize(new Dimension(1000,80));
        add(j, BorderLayout.NORTH);
        
        //****** CENTER PANEL ******
        
        mainPanel = new JPanel(new BorderLayout());
        ActionMenu actionMenu = new ActionMenu();
        mainPanel.add(actionMenu, BorderLayout.NORTH);
        
        final JPanel searchPane = new JPanel(new FlowLayout());
            searchName = new JTextField();
            JLabel label = new JLabel("Titre :");
            searchName.setColumns(20);
            JButton send = new JButton("OK");
            send.addActionListener(
                    new ActionListener() {
                        public void actionPerformed(ActionEvent evt){
                        
                        word = searchName.getText();
                        System.out.println("Creation de SearchElement");
                        System.out.println(word);
                        SearchElement r = new SearchElement(word);
                        mainPanel.add(r,BorderLayout.SOUTH);
                        mainPanel.revalidate();
                        }
                }
            );
            searchPane.add(label);
            searchPane.add(searchName);
            searchPane.add(send);        
        mainPanel.add(searchPane,BorderLayout.CENTER);
        
        // Add everything to JFrame    
        add(mainPanel);
                
        super.setSize(1000,700);
        super.setLocation(50, 50);
        super.setVisible(true);
        super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    public static void main(String[] args) {
        GestionCEMain go = new GestionCEMain();
    }
    
}



Merci d'avance. C deja un pas de plus pour moi !!!!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 oct. 2006 à 11:13
Salut,

petite remarque tu fais
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c'est pas super utilie tu peux simplement faire
setDefaultCloseOperation(EXIT_ON_CLOSE);//tu hérite de JFrame donc tu as les constantes de JFrame.

maintenant conceptuellement je voulais plus dire :
.......
final JPanel searchPane = new JPanel(new FlowLayout());
searchName = new JTextField();
JLabel label = new JLabel("Titre :");
searchName.setColumns(20);
JButton send = new JButton("OK");
final SearchElement r = new SearchElement();
r.setVisible(false);
send.addActionListener(
    new ActionListener() {
        public void actionPerformed(ActionEvent evt){
            word = searchName.getText();
            System.out.println("Creation de SearchElement");
            System.out.println(word);
            r.setWord(word);//à creer
            if(!r.isVisible())
               
r.setVisible(true);
        }
    }
);
mainPanel.add(r,BorderLayout.SOUTH);
searchPane.add(label);
searchPane.add(searchName);
searchPane.add(send);       
.......

concernant la taille vu que tu es en swing tu as acces à setPreferredSize.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0

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

Posez votre question
mikomiko Messages postés 12 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 28 février 2007
30 oct. 2006 à 12:03
Effectivement, c bien mieux comme ca tu as raison, et c pour cela qu'on a des setters et des getters
Jai modifier comme tu la preconiser, et tout marche aussi bien, mais jai toujours mon probleme fondamental d'affichage successif de mon table, c suurtout ca le veritable bins.... ken j'aurais compris ca j'aurais fait un grand pas ....
Pour l'instant il ma recherche fait un add(JTable) a chaque recherche, cependant "conceptuellement " ce n'est pas la bonne methode, il faudrait redonner les nouvelles valeurs a la JTable et fait un reaffichage:
Voila ce que fait pour l'instant la fonction makeSearch() de ma class SearchElement().

[code]
public SearchElement(){
        nbArticleFound=0;
        titre = new Vector();
            titre.add("numero");
            titre.add("Titre");
            titre.add("Auteur/Compositeur");
            titre.add("Annee de Sortie");
            titre.add("Disponible depuis le");
            titre.add("Etat");
            titre.add("Agence");
            titre.add("Type");
            titre.add("Disponible");
       
        cellules = new Vector();
        jt = new JTable(cellules,titre);
    }

    public void makeSearch(){
       
        RandomAccessFile fs;
        try {
            fs = new RandomAccessFile("gestionce.str","rw");
        if (word!=null){
            extraire(fs,LNG_TITRE,word); // cette methode me remplit mon Vector que je donne a ma JTable lors de sa                                                                                                                                                                                     construction
            add(new JScrollPane(jt));
        }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

[code]

et donc en fait a chaque fois que je fais "ok" jai un nouveau tableau a gauche du premier.... au lieu que les elements nouveau soient remis dans l'ancien jt....

je sais jai honte de vous embeter mais je ne sais pas du tout comment faire....
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 oct. 2006 à 12:45
Salut enfaite c'est pas vraiment compiqué donc pour reprendre ton code :

.......
final JPanel searchPane = new JPanel(new FlowLayout());
searchName = new JTextField();
JLabel label = new JLabel("Titre :");
searchName.setColumns(20);
JButton send = new JButton("OK");
final SearchElement r = new SearchElement(new String[]{"numero", "Titre",  
                "Auteur/Compositeur",

                "Annee de Sortie", "Disponible depuis le",

                "Etat", "Agence", "Type", "Disponible"});
r.setVisible(false);
send.addActionListener(
    new ActionListener() {
        public void actionPerformed(ActionEvent evt){
            word = searchName.getText();
            System.out.println("Creation de SearchElement");
            System.out.println(word);
            r.setWord(word);//à creer
            if(!r.isVisible())
               
r.setVisible(true);
        }
    }
);
mainPanel.add(r,BorderLayout.SOUTH);
searchPane.add(label);
searchPane.add(searchName);
searchPane.add(send);       
.......

//class SearchElement.java

private JTable table = null;
private String [] header = null;

public SearchElement(String [] header){
    nbArticleFound=0;
    this.header = header;
    add(new JScrollPane(getTable()));
}

private JTable getTable(){
    if(table == null){
        table = new JTable();
        DefaultTableColumnModel column = new DefaultTableColumnModel();
        for(String s : header){
            TableColumn tc = new TableColumn();
            tc.setHeaderValue(s);
            column.addColumn(tc);
        }
        table.setColumnModel(column);
        table.setModel(new DefaultTableModel());
    }
    return table;
}

public void makeSearch(){
       
    RandomAccessFile fs;
    try {
        fs = new RandomAccessFile("gestionce.str","rw");
        if (word!=null){
            extraire(fs,LNG_TITRE,word); // cette methode me remplit mon
Vector que je donne a ma  
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

pour ajouter une ligne tu fais:
DefaultTableModel model = (DefaultTableModel)getTable().getModel();
Vector rowData = new Vector();
rowData.add("cellule 1");
rowData.add("cellule 2");
rowData.add("cellule 3");
rowData.add("cellule 4");
rowData.add("cellule 5");
rowData.add("cellule 6");
rowData.add("cellule 7");
rowData.add("cellule 8");
rowData.add("cellule 9");
model.addRow(rowData);

ton prob vient du fait que tu nous recreer les instances à chaque fois ce qui est dans ton cas absolument pas utile :P

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
mikomiko Messages postés 12 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 28 février 2007
30 oct. 2006 à 15:11
Salut, j'ai fait comme tu m'as dit et la plus rien ne se passe !!! 
Je ne comprends plus bien pourquoi ca ne marche pas.... pourtant je pense avoir fait comme tu m'a dit !!!!
 je te met texto SearchElement.java :

package org.afcepf.ai69.groupe4.gestionce;
import javax.swing.*;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import java.util.*;
import java.io.EOFException;
import java.io.IOException;
import java.io.RandomAccessFile;

    public class SearchElement extends JPanel{
       
       
        static final int LNG_TITRE= 70 ;
        static final int LNG_AUTEUR = 25 ;
        static final int LNG_SORTIE=10;
        static final int LNG_DISPONIBILITE = 10 ;
        static final int LNG_ETAT = 13 ;
        static final int LNG_AGENCE = 25;
        static final int LNG_TYPE = 10 ;
        static final int LNG_ID = 4 ;
        static final int LNG_ENREGISTREMENT =                                                          2*(LNG_TITRE+LNG_AUTEUR+LNG_DISPONIBILITE+LNG_ETAT+LNG_AGENCE+LNG_TYPE)+4+1+4;
       
        RandomAccessFile fs=null;
        static int nbArticleFound = 0;
        static String word;   
        Vector cellules=null;
        Vector titre = null;
        private static JTable table = null;
        private static String [] header = null;
        DefaultTableModel model=null;

       
        SearchElement(String [] header){
            this.header = header;
            makeSearch();
        }
       
        private static JTable getTable(){
            if(table == null){
                table = new JTable();
                DefaultTableColumnModel column = new DefaultTableColumnModel();
                for(String s : header){
                    TableColumn tc = new TableColumn();
                    tc.setHeaderValue(s);
                    column.addColumn(tc);
                }
                table.setColumnModel(column);
                table.setModel(new DefaultTableModel());
            }
            return table;
        }

        public void makeSearch(){
            try {
                if (word!=null){
                    fs = new RandomAccessFile("gestionce.str","rw");
                    extraire(fs,LNG_TITRE); // cette methode me remplit mon Vector que je donne a ma
                    add(new JScrollPane(getTable()));
                }
                System.out.println("Nombre de reponse trouvee : " + nbArticleFound);
            } catch (Exception e) {
                System.out.println("ERROR Ouverture fichier");
            }
           
        }
       
        public static void extraire(RandomAccessFile fs,int lgElement)throws IOException{
            try{
                int cpt = 0;   
                while(true){
                    fs.seek(LNG_ID+(cpt * LNG_ENREGISTREMENT));
                    String titre = lireChaine(fs,lgElement);
                    if (titre.toLowerCase().regionMatches(true,0,word.trim().toLowerCase(),0,word.length())){
                        extraireEnregistrement(fs,cpt);
                        nbArticleFound++;
                    }
                    cpt++;
                }
            }catch(EOFException e){
                System.out.println("fin de fichier :)");
            }
        }

        public static String lireChaine(RandomAccessFile fs, int taille)throws IOException{
            StringBuffer ch = new StringBuffer() ;
            for (int i=0;i<taille;i++){
                ch.append(fs.readChar()) ;
            }
            return ch.toString() ;
        }
       
       
        public static void extraireEnregistrement(RandomAccessFile fs, int cpt){
           
            String titre,auteur,dispo,etat,agence,type;
            int id,sortie;
            boolean disp;
            DefaultTableModel model = (DefaultTableModel)getTable().getModel();
            Vector rowData = new Vector();
            try {
            fs.seek(cpt*LNG_ENREGISTREMENT);
           
            id = fs.readInt();
            rowData.add(id);
            titre = lireChaine(fs,LNG_TITRE);
            rowData.add(titre);
            auteur = lireChaine(fs,LNG_AUTEUR);
            rowData.add(auteur);
            sortie = fs.readInt();
            rowData.add(sortie);
            dispo = lireChaine(fs,LNG_DISPONIBILITE);
            rowData.add(dispo);
            etat = lireChaine(fs,LNG_ETAT);
            rowData.add(etat);
            agence = lireChaine(fs,LNG_AGENCE);
            rowData.add(agence);
            type = lireChaine(fs,LNG_TYPE);
            rowData.add(type);
            disp = fs.readBoolean();
            rowData.add(disp);
           
            model.addRow(rowData);
           
            System.out.println(model);
            //System.out.println(id+" "+type+" "+titre+" "+auteur+" "+sortie+" "+dispo+" "+etat+" "+agence+" "+disp);
            } catch (IOException e) {

            }
        }
       
        public void setWord(String word) {
            SearchElement.word = word;
             makeSearch();
        }
       
    }

***********************************
dans le main() :

final SearchElement r = new SearchElement(new String[]{"numero", "Titre", "Auteur/Compositeur","Annee de Sortie", "Disponible depuis le","Etat", "Agence", "Type", "Disponible"});
etc....

J'ai l'impression de marcher a reculons !!!!  jsuis pas en confiance !!!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 oct. 2006 à 15:32
Salut,

déjà essai ca (j'ai enlevé le static qui n'a pas vraiment lieu ici) :

import javax.swing.*;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import java.util.*;
import java.io.EOFException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class SearchElement extends JPanel {

    public static final int LNG_TITRE = 70;
    public static final int LNG_AUTEUR = 25;
    public static final int LNG_SORTIE = 10;
    public static final int LNG_DISPONIBILITE = 10;
    public static final int LNG_ETAT = 13;
    public static final int LNG_AGENCE = 25;
    public static final int LNG_TYPE = 10;
    public static final int LNG_ID = 4;
    public static final int LNG_ENREGISTREMENT = 2
            * (LNG_TITRE + LNG_AUTEUR + LNG_DISPONIBILITE + LNG_ETAT
                    + LNG_AGENCE + LNG_TYPE) + 4 + 1 + 4;
    private RandomAccessFile fs = null;
    private int nbArticleFound = 0;
    private String word = null;
    private JTable table = null;
    private String[] header = null;

    public SearchElement(String[] header) {
        this.header = header;
        add(new JScrollPane(getTable()));
        makeSearch();
    }

    private JTable getTable() {
        if (table == null) {
            table = new JTable();
            DefaultTableColumnModel column = new DefaultTableColumnModel();
            for (String s : header) {
                TableColumn tc = new TableColumn();
                tc.setHeaderValue(s);
                column.addColumn(tc);
            }
            table.setColumnModel(column);
            table.setModel(new DefaultTableModel());
        }
        return table;
    }

    public void makeSearch() {
        try {
            if (word != null) {
                fs = new RandomAccessFile("gestionce.str", "rw");
                extraire(fs, LNG_TITRE); // cette methode me remplit mon Vector que je donne a ma
            }
            System.out.println("Nombre de reponse trouvee : " + nbArticleFound);
        } catch (Exception e) {
            System.out.println("ERROR Ouverture fichier");
        }

    }

    public void extraire(RandomAccessFile fs, int lgElement) throws IOException {
        try {
            int cpt = 0;
            while (true) {
                fs.seek(LNG_ID + (cpt * LNG_ENREGISTREMENT));
                String titre = lireChaine(fs, lgElement);
                if (titre.toLowerCase().regionMatches(true, 0,
                        word.trim().toLowerCase(), 0, word.length())) {
                    extraireEnregistrement(fs, cpt);
                    nbArticleFound++;
                }
                cpt++;
            }
        } catch (EOFException e) {
            System.out.println("fin de fichier :)");
        }
    }

    public String lireChaine(RandomAccessFile fs, int taille)
            throws IOException {
        StringBuffer ch = new StringBuffer();
        for (int i = 0; i < taille; i++) {
            ch.append(fs.readChar());
        }
        return ch.toString();
    }

    public void extraireEnregistrement(RandomAccessFile fs, int cpt) {

        String titre, auteur, dispo, etat, agence, type;
        int id, sortie;
        boolean disp;
        DefaultTableModel model = (DefaultTableModel) getTable().getModel();
        Vector rowData = new Vector();
        try {
            fs.seek(cpt * LNG_ENREGISTREMENT);

            id = fs.readInt();
            rowData.add(id);
            titre = lireChaine(fs, LNG_TITRE);
            rowData.add(titre);
            auteur = lireChaine(fs, LNG_AUTEUR);
            rowData.add(auteur);
            sortie = fs.readInt();
            rowData.add(sortie);
            dispo = lireChaine(fs, LNG_DISPONIBILITE);
            rowData.add(dispo);
            etat = lireChaine(fs, LNG_ETAT);
            rowData.add(etat);
            agence = lireChaine(fs, LNG_AGENCE);
            rowData.add(agence);
            type = lireChaine(fs, LNG_TYPE);
            rowData.add(type);
            disp = fs.readBoolean();
            rowData.add(disp);
            model.addRow(rowData);

            System.out.println(model);
            //System.out.println(id+" "+type+" "+titre+" "+auteur+" "+sortie+" "+dispo+" "+etat+" "+agence+" "+disp);
        } catch (IOException e) {

        }
    }

    public void setWord(String word) {
        this.word = word;
        makeSearch();
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
mikomiko Messages postés 12 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 28 février 2007
30 oct. 2006 à 15:50
Merci infiniment pour ton aide Twinuts, mais non ca ne marche pas !!!
Je ne vois pas on utilise ni  "Vector rowData"  ni "DefaultTableModel model" de donnees que l'on cree !!!
on le rempli mais ensuite il n'est pas utilise a la creation de la JTable.

Car quand je fais OK sur mon bouton, je JTable s'affiche mais vide, ni de headers ni data. juste un carre vide a l'ecran ....
La je ne sais pas ou debuger !
0
mikomiko Messages postés 12 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 28 février 2007
1 nov. 2006 à 14:04
merci Twinuts.... je viens closer mon echange :) je viens d'y arriver... enfin en passant pas des AbstractTableModel.


Merci grandement pour ton aide :)


A bientot !!
0
Rejoignez-nous