如何收听将新文件添加到文件夹以显示在JTable中



我的GUI有问题。我使用WatchService,它运行良好。如何添加此服务以便JTable显示新文件?

也许还有其他解决方案?我可以请你举几个例子吗?我的表实现了AbstractTableModel

我解决了这个问题,但现在如果我添加新文件,我的表会被刷新,但它们会丢失jprogress栏和复选框的渲染器视图。我需要帮助。

    Path path = Paths.get(filePath.getAbsolutePath());
    try {
        Boolean isFolder = (Boolean) Files.getAttribute(path, "basic:isDirectory", NOFOLLOW_LINKS);
        if (!isFolder) {
            Log.error(this, "Path: " + path + " is not a folder");
            throw new IllegalArgumentException("Path: " + path + " is not a folder");
        }
        System.out.println("Watching path: " + path);
        WatchService watchService = path.getFileSystem().newWatchService();
        path.register(watchService, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
        WatchKey key;
        while ((key = watchService.take()) != null) {
            for (WatchEvent<?> event : key.pollEvents()) {
                File[] files = filePath.listFiles();
                customTableDataList.clear();
                    for (File file : files) {
                        customTableData = new CustomTableData(file);
                        customTableDataList.add(customTableData);
                    }
                customTableModel = new CustomTableModel(customTableDataList);

这解决了我的问题,表被重新加载,但视图没有呈现。

              myTable.setModel(customTableModel);

如果我删除上面的内容并添加(下面的一行(,则我的表视图是正确的,但只有当我单击复选框时(表被重新加载(。

               myTable = new Table(customTableModel);

相关内容

  • 没有找到相关文章

最新更新