【发布时间】:2019-11-11 09:16:49
【问题描述】:
我有此代码用于搜索重复文件,但我不知道如何在列表等文本区域中显示结果。
public static void find(Map<String, List<String>> lists, File dir) {
for (File f : dir.listFiles()) {
if (f.isDirectory()) {
find(lists, f);
} else {
String hash = f.getName() + f.length();
List<String> list = lists.get(hash);
if (list == null) {
// Create a linked list and add duplicate entries
list = new LinkedList<String>();
lists.put(hash, list);
}
list.add(f.getAbsolutePath());
}
}
}
我试过了,还是不行
logScrollPane.add(list1); 文件文件 = fc.getSelectedFile();
Map<String, List<String>> lists = new HashMap<String, List<String>>();
find(lists, file);
//This is where a real application would open the file.
listModel.addElement("Looking for Duplicates in Folder Name: " + file.getName() + " at location " + file.getParent());
listModel.addElement("Double Click on File to open the Folder");
for (List<String> list : lists.values()) {
if (list.size() > 1) {
listModel.addElement("--");
listModel.addElement("Duplicates Found");
for (String file1 : list) {
listModel.addElement(file1);
}
}
}
listModel.addElement("--");
【问题讨论】:
-
您要将结果添加到
JTextArea还是JList?因为从你给我们的代码看,你使用的是JList,但在标题中你写的是JTextArea。 -
首先我想在 JLIst 中添加结果,然后在 TextArea 中添加结果
-
首先我想在 JLIst 中添加结果,然后在 TextArea 中添加结果 - 为什么要在两个地方使用它。我不明白这个要求。在任何情况下,如果您在 JList 中有数据,那么您遍历列表以获取每个值并使用 append(...) 方法将其添加到 JTextArea。