Récupérer donnes d'un fichier texte pour les mettre dans une JTable

Résolu
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 6 janv. 2007 à 13:00
chkiouamed Messages postés 3 Date d'inscription mercredi 17 juillet 2013 Statut Membre Dernière intervention 19 juillet 2013 - 19 juil. 2013 à 14:06
Bonjour,

j'ai beaucoup de mal avec les JTable, j'aimerais simplement lire les lignes d'un fichier texte et les mettre dans une JTable.
La structure du fichier texte est la suivante:
text|#|text2|#|text3|#|text4|#|text5|#|text6
text|#|text2|#|text3|#|text4|#|text5|#|text6
etc...

J'aimerais que ce soit mis dans une Jtable, mais je n'y arrive pas !!!

Comment faire?

Merci !!!

Philippe

5 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
6 janv. 2007 à 14:06
Salut,

enfait c'est pas super complex voici un exemple de comment tu pourrais faire :

import java.io.FileInputStream;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.Vector;

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

public class Test extends JFrame{
    private static final long    serialVersionUID    = 1802199483736051124L;

    public Test(){
        DefaultTableModel model = new DefaultTableModel();
       
        for(int i = 1; i < 7; i++)//on place les titres
            model.addColumn("Column " + i);
        try {
            readFile(model);//lecture du fichier
        } catch (Exception e) {
            e.printStackTrace();
        }
       
        setContentPane(new JScrollPane(new JTable(model)));
        setSize(800, 600);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
   
    public void readFile(DefaultTableModel model) throws Exception{
        Scanner sc = new Scanner(new FileInputStream("data.txt"));//on ouvre le fichier pour le lire
        while(sc.hasNext()){//tant qu'il y a des choses à lire
            StringTokenizer token = new StringTokenizer(sc.nextLine(), "|#");//on split une ligne en fonction de | et # pour ne garder que le texte
            Vector<String> rowData = new Vector<String>();
            while(token.hasMoreTokens())//lecture des token et on les mets dans le vecteur
                rowData.add(token.nextToken());
            model.addRow(rowData);//on ajoute la ligne
        }
        sc.close();//fini :)
    }
   
    public static void main(String[] args) {
        new Test().setVisible(true);
    }
}

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

WORA
3
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
6 janv. 2007 à 14:21
Merci beaucoup, c'est exactement ce que je cherchais ! J'avais un problème avec une erreur de cast que je n'arrivais pas à résoudre depuis ce matin.

Merci !
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
6 janv. 2007 à 19:55
Salut:

Une autre solution consiste à passer par la classe abstraite AbstractTableModel.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
6 janv. 2007 à 21:13
Salut,

c'est ce que je fais en passant par DefaultTableModel vu que c'est la classe AbstractTableModel en plus évolué

------------------------------------
"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
chkiouamed Messages postés 3 Date d'inscription mercredi 17 juillet 2013 Statut Membre Dernière intervention 19 juillet 2013
19 juil. 2013 à 14:06
rak m3allleeeeeeeeeeeeeeeeeeeeee Twintus :)))
0
Rejoignez-nous