Java swing - 如何设置指定树节点可编辑而不是整个树

van*_*ssa 1 java swing jtree

我需要一个JTree,只有叶节点可以编辑.但我不知道如何进行自定义设置.有人可以帮忙吗?谢谢!

tra*_*god 5

您可以 以限制编辑到叶节点的方式覆盖isCellEditable()方法,DefaultTreeCellEditor如此示例所示.

@Override
public boolean isCellEditable(EventObject e) {
    return super.isCellEditable(e)
        && ((TreeNode) lastPath.getLastPathComponent()).isLeaf();
}
Run Code Online (Sandbox Code Playgroud)

  • 就个人而言,我不喜欢让编辑决定与模型相关的可编辑性的想法.但是,不幸的是,TreeModel没有可编辑性的概念,因此一个hack与另一个一样好或坏:-)这将覆盖JTree.isPathEditable. (2认同)