Remplir 3 colonnes JTable à partir fichier txt [Résolu]

Messages postés
49
Date d'inscription
vendredi 23 mars 2018
Dernière intervention
13 mars 2019
-
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; 
  }

  
 
  
  
  
  
  
  } 
 
Afficher la suite 

Votre réponse

1 réponse

Messages postés
49
Date d'inscription
vendredi 23 mars 2018
Dernière intervention
13 mars 2019
0
Merci
Il suffit de changer :

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


par

String [] dataRow =line.split("\t");
Commenter la réponse de azerty_qwerty

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.