Частично видны узлы деревьев в java размах - PullRequest
0 голосов
/ 05 апреля 2020

Я создаю средство просмотра каталогов с помощью JTree в java .swing. Проблема с GUI заключается в том, что узлы частично видны и видны только после того, как я расширяю дочерние узлы

Перед расширением

После Расширения

Здесь приведен код выше

public class ProjectStructure extends JPanel{
private JTree directory;

public ProjectStructure() {
    setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
    Dimension size = getPreferredSize();
    size.width = 250;
    setPreferredSize(size);

    setBorder(BorderFactory.createTitledBorder("Explorer"));
}

void displayFilesInDirectory(File file){
    DefaultMutableTreeNode root = new DefaultMutableTreeNode(file.getName());
    generateTreeView(file, root);

    directory = new JTree(root);
    directory.setVisible(true);
    add(directory);
}

private void generateTreeView(File rootFile, DefaultMutableTreeNode parent) {
    File[] files = rootFile.listFiles();

    if (files != null) {
        for (int i = 0; i < files.length; i++) {
            DefaultMutableTreeNode node = new DefaultMutableTreeNode(files[i].getName());
            parent.add(node);
            if (files[i].isDirectory()) {
                generateTreeView(files[i], node);
            }
        }
    }
}
}

Также можно сделать JPanel можно изменить размер с помощью функции перетаскивания?

...