Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取文件夹中存在的文件名并将其放入Jtable_Java_Jtable - Fatal编程技术网

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

Java 如何获取文件夹中存在的文件名并将其放入Jtable,java,jtable,Java,Jtable,当我运行我的程序时,我只得到第一个文件名,重复的次数与所选文件夹中存在的文件(行)相同。 例如,如果一个文件夹中有三个文件,file1、file2和file3,则在运行程序后,Jtable将返回: file1 file1 file1 这是我的密码: File files = new File(directory); File[] listOfFiles = files.listFiles(); DefaultTableModel dtm = new DefaultTableModel();

当我运行我的程序时,我只得到第一个文件名,重复的次数与所选文件夹中存在的文件(行)相同。 例如,如果一个文件夹中有三个文件,file1、file2和file3,则在运行程序后,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);

为每个文件创建一个新的
矢量实例
,否则您只需将名称添加为列

我对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);

很高兴这有帮助。请记住,向量表示行的列值;)