当我运行程序时,我只会重复第一个文件名,因为所选文件夹中的文件(作为行)重复了多次。 例如,如果我在文件夹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);
答案 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);