当节点扩展时,JTree会扩大宽度

时间:2011-05-07 17:10:50

标签: java swing width jtree expand

我对JTree有一个真正的难题。

我已经实现了一个带有自写模型的JTree(从TreeModel扩展而来)。

    fileSystemModel = new MyModel(new File(directory));
    fileTree = new JTree(fileSystemModel);
    fileTree.setEditable(true);
    fileTree.setDragEnabled(true);
    fileTree.addTreeSelectionListener(new TreeSelectionListener() {

        public void valueChanged(TreeSelectionEvent event) {
            File file = (File) fileTree.getLastSelectedPathComponent();
        }
    });

所以我将它添加到JPanel,并将此JPanel添加到JFrame。

不,我遇到了这个问题:我启动了Frame,如果我展开一个Node,JTree的宽度将扩大到显示叶子所需的宽度。

我试图设置这个:

fileTree.setMaximumSize(width, height);

但它失败了,我也尝试将JTree嵌入到带有最大大小的JScrollPanel中,这也失败了。

JTree仍在调整其宽度需要多少。

所以我现在尝试了两天并没有找到任何东西,所以如果有人能帮助我,我会很感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

所描述的效果是FlowLayout的默认JPanel的特征。单击左侧面板时,您可以看到此更改example

附录:如example所示,GridLayout允许组件扩展;它适用于setVisibleRowCount()后跟pack()