Tree com diretório do PC [RESOLVIDO]

Bom dia galera!

Estou com uma interface um pouco complexa pra construir, vou explica-la para ver se consigo uma ajuda de vcs.

Bom eu tenho uma interface que tem um diretório do PC de relatórios, se não me engano é uma JTree, cada pasta
dessa Tree eh uma pasta que contem relatórios como mostra na imagem abaixo:

Quando eu seleciono uma pasta abaixo da Tree me aparece todos os relatórios que constam naquela pasta, para melhor
ilustrar segue a imagem abaixo:

Quando eu seleciono um relatório tenho um botão que faz eu selecionar os filtros que desejo para aquele relatório, essa opção
fica invisível e só é exibida quando eu clico no botão, segue a imagem dos filtros:

Queria saber como faço pra colocar um diretório do PC na minha Tree e qual componente eu uso pra colocar os filtros dos relatórios
e deixar ele invisível só sendo visível com a ação do botão?

Desde já agradeço a todos pela ajuda, estou super confuso nessa interface e tenho que faze-la com mais agilidade possível para entregar
no meu trabalho. :?:

JTree

Como usar JTree

Problema resolvido, usei um listAllFiles e usei um método que faz a verificação do diretório usado, verifica se é uma pasta ou um
arquivo…

para pegar o diretório e popular a JTree eu usei

//Chama o método para popular o JTree listAllFiles("C:\\Users\\diego\\Desktop\\Relatorios", rootNode, true);

[code] public static void listAllFiles(String directory, DefaultMutableTreeNode parent, Boolean recursive) {
// Lista todos os arquivos no diretório “String directory” no array "children"
File[] children = new File(directory).listFiles();

    for (int i = 0; i < children.length; i++) {

        // Pega o nome de cada Pasta ou Arquivo
        DefaultMutableTreeNode node = new DefaultMutableTreeNode(children[i].getName());
        // Só mostra o Node se ele é uma pasta e se esta é uma chamada recursiva
        if (children[i].isDirectory() && recursive) {
            parent.add(node); // adiciona como filho
            listAllFiles(children[i].getPath(), node, recursive); // chamada recursiva para trabalhar com o filho
        } else if (!children[i].isDirectory()) { // senão caso não seja um diretório
            parent.add(node); // adiciona como um arquivo
        }
    }
}[/code]