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

z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 6 janv. 2007 à 13:00 - Dernière réponse : chkiouamed 3 Messages postés mercredi 17 juillet 2013Date d'inscription 19 juillet 2013 Dernière intervention
- 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 

5 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 6 janv. 2007 à 14:06
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
z980x 898 Messages postés jeudi 6 juin 2002Date d'inscription 26 juillet 2007 Dernière intervention - 6 janv. 2007 à 14:21
0
Utile
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
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 6 janv. 2007 à 19:55
0
Utile
Salut:

Une autre solution consiste à passer par la classe abstraite AbstractTableModel.
Commenter la réponse de Ombitious_Developper
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 6 janv. 2007 à 21:13
0
Utile
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
chkiouamed 3 Messages postés mercredi 17 juillet 2013Date d'inscription 19 juillet 2013 Dernière intervention - 19 juil. 2013 à 14:06
0
Utile
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.