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

Messages postés
898
Date d'inscription
jeudi 6 juin 2002
Dernière intervention
26 juillet 2007
- - Dernière réponse : chkiouamed
Messages postés
3
Date d'inscription
mercredi 17 juillet 2013
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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
5309
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Twinuts
Messages postés
898
Date d'inscription
jeudi 6 juin 2002
Dernière intervention
26 juillet 2007
0
Merci
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 !
Commenter la réponse de z980x
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
0
Merci
Salut:

Une autre solution consiste à passer par la classe abstraite AbstractTableModel.
Commenter la réponse de Ombitious_Developper
Messages postés
5309
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
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
Commenter la réponse de Twinuts
Messages postés
3
Date d'inscription
mercredi 17 juillet 2013
Dernière intervention
19 juillet 2013
0
Merci
rak m3allleeeeeeeeeeeeeeeeeeeeee Twintus :)))
Commenter la réponse de chkiouamed

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.