JTable [Résolu]

Signaler
Messages postés
80
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
23 février 2020
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
bonjour tout le monde!!!
voila ,je voudrais faire apparaitre dans mon JTable mon fichier "listeCac40.txt" compose d'un String code et titre,je sais que je vais devoir passer par un tableau d'objet a 2 dim mais je ne vois pas du tout comment.
voici ma classe,si quelqu'un avait une idée,j'ai d abord créer une méthode recuperedonnees(),et apres je seche quand a la facon d'aller recuperer les donnees et de les mettre dans mon JTable. voici mon code:



package methodologie_projet;

import java.io.*;

public class Cac40 {
// fichier a lire
private static String fichierCac40 = "Liste CAC 40.txt";
private String code;
private String titre;
private Cac40[] tabCac40 = new Cac40[40];
// tableau obj cotations
// chaque element du tab est un obj Cac40
// avec ses attributs cde et titre--->1 seul dimention

Object[][] tabObjectsjTable = new Object[40][2];

// /////////GETTERS/SETERS////

public Cac40[] getTabCac40() {
return tabCac40;
}

public void setTabCac40(Cac40[] tabCac40) {
this.tabCac40 = tabCac40;
}

public static String getFichierCac40() {
return fichierCac40;
}

public static void setFichierCac40(String fichierCac40) {
Cac40.fichierCac40 = fichierCac40;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getTitre() {
return titre;
}

public void setTitre(String titre) {
this.titre = titre;
}

public Object[][] getTabObjectsjTable() {
return tabObjectsjTable;
}

public void setTabObjectsjTable(Object[][] tabObjectsjTable) {
this.tabObjectsjTable = tabObjectsjTable;
}

// ///CONSTRUCTEURS////
public Cac40() {
};

public Cac40(String code, String titre) {
super();
this.code = code;
this.titre = titre;

}

// ///////////METHODES////////////////////////

public void recupereDonnee() throws IOException {
String repertoire = System.getProperty("user.dir");
repertoire = repertoire + "/src/methodologie_projet/";
try {
FileReader fichier = new FileReader(repertoire + fichierCac40);
System.out.println("Fichier" + fichierCac40 + "trouve \n");
BufferedReader tampon = new BufferedReader(fichier);
String line = tampon.readLine();
int n = 0;
while (line != null) {
String[] tabChaine = line.split(";");
System.out.print(tabChaine[0] + " - ");
System.out.println(tabChaine[1]);
line = tampon.readLine();
// /on recup le code et titre du jour
String code = tabChaine[0];
String titre = tabChaine[1];
tabCac40[n] = new Cac40(code, titre);
n++;////la je seche/////



// transfert vers un tabobject[40][2]
// pour le constructeur du jtable

}

} catch (FileNotFoundException e) {
System.out.println("Fichier" + fichierCac40 + "non trouve ");

}

}

public static void main(String[] args) throws IOException {
Cac40 objetCac40 = new Cac40();
objetCac40.recupereDonnee();
Cac40[] lesTitres = objetCac40.getTabCac40();
System.out.println("***************************");
System.out.print(lesTitres[0].getCode() + " ");
System.out.println(lesTitres[0].getTitre());

}
}
            
                

5 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
355
Si tout est ok pour toi, peux tu accepter ma réponse ?
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
355
Salut,

Quel est le format de ton fichier ? Par quel caractère les champs sont ils séparés ?

Tu as des problèmes uniquement pour la construction de la JTable ?
Messages postés
80
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
23 février 2020

salut "julien 39"
non je n'ai pas de problème pour la construction proprement dite ,mon souci c'est ce que doit m'afficher ma J Table la,en l’occurrence mon fichier txt "Liste CAC 40.txt" qui contient 40 objets compose de 2 colonnes une "code" et l'autre "titre" et mon soucis c'est de rapatrier tout ça sur une J Table que j'ai crée a partir d'une nouvelle JFrame.
voila pour faire court c'est juste le transfert des données de mon txt ,sur ma JTable qui sera constitue de mes 40 objets,divise en 2 colonnes.
merci pour ton attention ...
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
355
Tout d'abord, un fichier texte ne contient pas de colonne, je ne sais pas vraiment de quoi tu parles. Est ce que c'est ca le format :
ligne1c1        ligne1c2
ligne2col1      ligne2c2
ligne3colonne1  ligne3c2

ou ca :
ligne1c1;ligne1c2
ligne2col1;ligne2c2
ligne3colonne1;ligne3c2

ou ca :
ligne1c1 ligne1c2
ligne2col1 ligne2c2
ligne3colonne1 ligne3c2


Ou encore autre chose

Pour lire un fichier texte ligne à ligne, tu peux utilise ce code : http://www.javafr.com/codes/LIRE-ECRIRE-FICHIERS-TEXTE_52348.aspx

Ensuite, je te conseil de créer un objet contenant tes deux valeurs code et titre, je ne sais pas exactement à quoi ca correspond, tu devras lui trouver un nom parlant, moi, je vais choisir le nom Ligne (mais c'est un mauvais nom)

public class Ligne {

   private String code;
   private String titre;

   public Ligne(String code, String titre){
      this.code=code;
      this.titre=titre;
   }

   public String getTitre(){
      return titre;
   }

   public String getCode(){
      return code;
   }
}


Tu lis le fichier texte ligne à ligne et pour chaque ligne, tu ajoutes un objet Ligne(code, titre) dans une ArrayList<Ligne>

Une fois que c'est fait, tu créé une JTable et tu boucles sur les éléments de ta liste de ligne. Pour chaque élément, tu ajoutes une ligne à ta JTable de cette manière :
((DefaultTableModel)(table.getModel())).addRow(new String[]{ligne.getCode(), ligne.getTitre()});


Je peux difficilement être plus précis :)
http://www.javafr.com/codes/REDIMENSIONNER-JTABLE_53881.aspx
Messages postés
80
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
23 février 2020

ok merci beaucoup ,je vois maintenant
au revoir!!!