如何获取文件夹中存在的文件名并将其放在Jtable中

时间:2014-12-05 22:21:54

标签: java jtable

当我运行程序时,我只会重复第一个文件名,因为所选文件夹中的文件(作为行)重复了多次。 例如,如果我在文件夹file1,file2和file 3中有三个文件,则在运行程序后,Jtable将返回:

file1
file1
file1

这是我的代码:

File files = new File(directory);
File[] listOfFiles = files.listFiles(); 

DefaultTableModel dtm = new DefaultTableModel();
dtm.getDataVector().removeAllElements();
dtm.fireTableDataChanged();
Vector dataRows = new Vector();
dtm.addColumn("Nom");
for (File  fichier : listOfFiles) 
{
  if (fichier.isFile()) 
  {
    fileNames = fichier.getName();
    if (fileNames.endsWith(".txt") || fileNames.endsWith(".TXT"))
    {
      dataRows.add(fileNames);
      dtm.addRow(dataRows);
    }
  }
}
TblFile.setModel(dtm);

2 个答案:

答案 0 :(得分:0)

为每个文件创建Vector dataRows的新实例,否则您只是将名称添加为列

答案 1 :(得分:0)

我对swing并不熟悉,但尝试重新初始化每行的向量,否则你只是添加到同一个向量对象,它始终将第一个条目作为第一个文件

   for (File  fichier : listOfFiles) 
   {

     if (fichier.isFile()) 
     {  

       fileNames = fichier.getName();
       if (fileNames.endsWith(".txt") || fileNames.endsWith(".TXT"))

       {
         Vector dataRows = new Vector();
         dataRows.add(fileNames);
         dtm.addRow(dataRows);


       }
    }

  }
 TblFile.setModel(dtm);