我有一个JTree

JTree tree = new JTree();
tree.setCellRenderer(// ...);
tree.setCellEditor(// ...);
tree.setEditable(true);


使用其单元格渲染器显示其单元格;如果单击单元格,则它们使用单​​元格编辑器显示。有没有办法只能使用单元格编辑器显示?


我试图删除渲染器。这不起作用,因为JTree求助于其默认的单元格渲染器。
这类似于this question,但是,该问题似乎未包含与我的特定问题相关的答案。

最佳答案

最简单的方法是创建一个TreeCellRenderer,它返回关联的TreeCellEditor组件。

尝试这样的事情:

        tree.setCellRenderer(new TreeCellRenderer() {
        @Override
        public Component getTreeCellRendererComponent(
                JTree tree, Object value,
                boolean selected, boolean expanded,
                boolean leaf, int row, boolean hasFocus) {
            return tree.getCellEditor().getTreeCellEditorComponent(tree, value,
                                                      selected, expanded, leaf, row);
        }

    });

07-27 20:54