【问题标题】:JTree without leaf没有叶子的 JTree
【发布时间】:2012-11-06 07:22:17
【问题描述】:

是否可以制作没有叶子的 JTree?如果可以的话,请告诉我方法。

我想将这些突出显示的叶子转换为文件夹或父级。

如果您还想要其他任何东西,请告诉我。

【问题讨论】:

  • 不清楚你在问什么你的意思是你希望你的叶子节点在 UI 中表示为文件夹?
  • 你读过JTree tutorial,只创建XxxTreeNodes
  • 只创建节点,但不会让我感觉,我不会走这条路,更好的是自定义 JTrees 外观,放在那里将内置输出更改为屏幕的图标,对于节点,叶子也一样
  • 你可以只创建没有叶子的节点

标签: java swing jtree treenode


【解决方案1】:

FileTreeModel 所示,isLeaf() 应返回 falsegetChildCount() 应返回 0 用于目录。结果如图here;尽管不明显,test 目录是空的。

@Override
public boolean isLeaf(Object node) {
    File f = (File) node;
    return !f.isDirectory();
}

@Override
public int getChildCount(Object parent) {
    File f = (File) parent;
    if (!f.isDirectory()) {
        return 0;
    } else {
        return f.list().length;
    }
}

【讨论】:

    【解决方案2】:

    我认为,如果您始终从 TreeModel 中的 isLeaf 返回 true,但从 getChildCount 为您的叶节点返回 0,您将得到您想要的。

    【讨论】:

    • 感谢 Tom 的回复但我想知道如何将树限制为仅节点。
    • 我想我只是不明白你在问什么,重新阅读似乎将其作为答案,特别是考虑到你对我的评论的回复。
    • 您能否详细说明您的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    相关资源
    最近更新 更多