java - JTree 在节点展开时扩大宽度

标签 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。

不,我遇到了这个问题:我启动了框架,如果我展开单个节点,JTree 的宽度将扩大到显示叶子所需的宽度。

我试着这样设置:

fileTree.setMaximumSize(width, height);

但它失败了,我还尝试将 JTree 嵌入到具有最大尺寸的 JScrollPanel 中,但也失败了。

JTree 仍在根据需要调整其宽度。

所以我现在试了两天,但没有找到任何东西,所以如果你们中有人能帮助我,我将不胜感激。

谢谢!

最佳答案

所描述的效果是 JPanel 的默认 FlowLayout 的特征。点击左侧面板可以看到变化是这个example .

附录:如 example 中所示, GridLayout 允许组件展开;它与 setVisibleRowCount() 后接 pack() 配合使用效果特别好。

关于java - JTree 在节点展开时扩大宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5922718/

相关文章:

java - 在java的内存游戏中保持2张图片打开一段时间

ipad - 在 iPad 的情况下,在 UITableViewCell 中查找 contenView 的宽度

html - 如何根据屏幕改变高度和宽度,(最小值)

java - 在 IBM MQ in java 程序中创建主题

java - 如何检测文件是否不是utf-8编码?

java - 将文件上传到Android服务器时如何在表单数据中发送多个参数?

远程计算机上的 Java 登录用户名

java - 限制 jtextfield 仅接受数字?

java - 连接GUI与游戏

android - SetWidht match_parent的一半