begin process at 2010 02 10 07:54:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

Probleme Affichage JTable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme Affichage JTable

lundi 30 octobre 2006 à 08:47:36 | Probleme Affichage JTable

mikomiko

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

lundi 30 octobre 2006 à 09:24:41 | Re : Probleme Affichage JTable

Twinuts

Membre Club Administrateur CodeS-SourceS
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
lundi 30 octobre 2006 à 10:43:50 | Re : Probleme Affichage JTable

mikomiko

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 !

[code]

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();
    }
   
}

[/code]



Merci d'avance. C deja un pas de plus pour moi !!!!
lundi 30 octobre 2006 à 11:13:45 | Re : Probleme Affichage JTable

Twinuts

Membre Club Administrateur CodeS-SourceS
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
lundi 30 octobre 2006 à 12:03:42 | Re : Probleme Affichage JTable

mikomiko

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....
lundi 30 octobre 2006 à 12:45:04 | Re : Probleme Affichage JTable

Twinuts

Membre Club Administrateur CodeS-SourceS
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
lundi 30 octobre 2006 à 15:11:32 | Re : Probleme Affichage JTable

mikomiko

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 !!!




lundi 30 octobre 2006 à 15:32:41 | Re : Probleme Affichage JTable

Twinuts

Membre Club Administrateur CodeS-SourceS
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
lundi 30 octobre 2006 à 15:50:11 | Re : Probleme Affichage JTable

mikomiko

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 !



lundi 30 octobre 2006 à 16:32:48 | Re : Probleme Affichage JTable

Twinuts

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
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

1 2

Cette discussion est classée dans : recherche, class, add, jtable, vector


Répondre à ce message

Sujets en rapport avec ce message

problème de repaint JTable [ par lynouille ] Bonjour à tous,excusez moi de vous déranger mais j'ai un problème avec le rafraichissement de ma JTable qui prend en argument (Vector data , Vector Co Help Me : Imbrication de JTable [ par vinke00 ] Tout d abord boujour a tout hom. . .Mon probleme est le suivant : Comment faire pour que les objets d'une collone d'une JTable soit une autre JTable Petit probleme avec les Vector [ par SLaYerS ] Bon voila je m'explique, j'ai un petit probleme et je ne comprend vraiment pas pourquoi ca me fait ca.Alors j'ai un class contact qui contient des inf JTable, problème d'affichage [ par Kanouch ] Bonjour,j'essaie de créer une JTable à deux colonnes dans laquelle j'ajoute des éléments ligne par ligne. Je tape dans deux zones de texte et je stock JTable + initialisation des données problèmes [ par ObiWanKennedy ] SALUTVoila mon problème, j'ai un vector qui continent des occurences d'une classe qui ce est constituée de 2 données membres: la question et la repons gestion des evenements dans une jtable [ par hm06 ] HELP!!!!! s'il vout plait g besoin de quelqu'un pour m'aider!!! j'ai une jtable qui liste des données provenant d'un ResultSet. Quand j'edite une cell class vector [ par angelboy ] Affichage JTable [ par alonsyl ] bonjour,j'essaie d'afficher une JTable sur une fenetre. tout se passe convenablement sauf que :1) les donnees s'affichent mais pas les titres de colon TextField [ par hhghost ] bonjour tous le monde, voici mon petit programme :import java.awt.*;import javax.swing.*;public class FrameTest {    public static void main(String[] problère JTable et JScrollpane [ par Bumcello ] Bonjour, j'ai une erreur que je n'arrive pas à résoudre : Voici l'erreur : Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExceptionDonc j


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales