我有一个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);
}
});