Remplir 3 colonnes JTable à partir fichier txt

Résolu
azerty_qwerty Messages postés 61 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 6 décembre 2022 - Modifié le 13 mars 2019 à 13:25
azerty_qwerty Messages postés 61 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 6 décembre 2022 - 13 mars 2019 à 16:43
Bonjour,

J'ai un fichier texte. Chaque ligne de ce fichier sont insérée dans chaque ligne de ma JTable dans une colonne. Cela fonctionne nickel.

Par contre, si j'ai un fichier dont chaque ligne contient 3 types de données séparées par un espace tabulation (ex : donnée1 "tab" données2 "tab" données3), et que je souhaite insérer chaque donnée dans 1 colonne de ma JTable, comment puis-je faire ?

J'utilise un defaultTableModel. Voici le code ci-dessous . Merci pour votre aide, car je ne vois pas comment faire.


public class myTableModelApi extends DefaultTableModel 
{
 
 public static String []columnsName = {"DOCUMENTS CHARGES :"} ;
 public static int nombreDocumentsApi ;
 public static  Object [] tableLines;

 public myTableModelApi( ) 
    {
  String Newligne=System.getProperty("line.separator"); // retour à la ligne

  String []columnsName = {" "} ;
  this.setColumnIdentifiers(columnsName);
  
 // lister tous les fichiers contenus dans le dossier api dans un fichier
  
  String mesFichiers="";
  String cheminDossier=System.getProperty("user.dir")+ "/courrier copie/"; 
  ArrayList<String> fichiers=new ArrayList<>(); 
  fichiers=listeFichier(cheminDossier);
   
      FileWriter fwFichier;
   try 
   {
    
    fwFichier = new FileWriter(System.getProperty("user.dir")+"listeFichiersApi.txt");
              
     BufferedWriter bw=new BufferedWriter(fwFichier);
       try(PrintWriter pwFichier=new PrintWriter(bw))
        {
        for(String fichier : fichiers)
      {
         pwFichier.println(fichier);
         
      }
        
        pwFichier.close();
        }
    } catch (IOException e1) 
    {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   
    }
   
   
  
  
 // on lit le fichier contenant la liste des fichiers api
 // on l'insere dansla Jtable
  
  String filePath = System.getProperty("user.dir") + "listeFichiersApi.txt" ;
  
  
  
   BufferedReader br;
  try {
   br = new BufferedReader(new FileReader(filePath));
  
    
   
   tableLines = br.lines().toArray();
   
  
  for (int i = 0; i< tableLines.length ; i++)
  {
   String line = tableLines [i].toString().trim();
   
   String [] dataRow =line.split(Newligne);
   
    
   
   this.addRow(dataRow);
   
  }
  nombreDocumentsApi = tableLines.length ;
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
    }
 
 public boolean isCellEditable(int rowIndex, int columnIndex) 
 {
  return false;
 }
 
 public int getColumnCount() {
  return columnsName.length;
 }
 
 
 
 public Class getColumnClass(int column) {
  //return String.class;
    Class returnValue;
          if (( column >= 0) && ( column < getColumnCount())) {
              returnValue = getValueAt(0,  column).getClass();
          } else {
              returnValue = Object.class;
          }
          return returnValue;
 }
 
 
 //public Object getValueAt(int rowIndex, int columnIndex) {
  
  
 //}
 
 //Lister fichiers
  private ArrayList<String> listeFichier(String dossier) {
  ArrayList<String> fichiers=new ArrayList<>(); 
  File monDossier=new File(dossier);
  File[] liste=monDossier.listFiles();
  for(File elementListe : liste) {
  if(elementListe.isFile()) {
  fichiers.add(elementListe.getName()); }
  }
  return fichiers; 
  }

  
 
  
  
  
  
  
  } 
 

1 réponse

azerty_qwerty Messages postés 61 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 6 décembre 2022
13 mars 2019 à 16:43
Il suffit de changer :

String [] dataRow =line.split(Newligne);


par

String [] dataRow =line.split("\t");
0
Rejoignez-nous