我有一个自定义对象,它具有描述(字符串)和优先级值(整数)。我在 JTree 中显示这些值,因为这种类型的不同对象之间存在层次关系。我只在 JTree 节点中显示描述,因为优先级对于显示目的并不重要。
我希望在编辑 JTree 节点(叶或节点)时弹出 JDialog - 例如按 F2。然后,此对话框将用于编辑描述和优先级。
如何防止 JTree 将文本作为文本字段执行默认编辑并调用自定义对话框?
我认为一个简单的方法是子类化 DefaultTreeCellEditor 类并重写 isCellEditable 方法。然后,我将在那里调用 JDialog(当我实例化自定义 DefaultTreeCellEditor 时,我可以获取相关的初始化元素)并简单地返回 false 以防止默认编辑 - 但这对我来说似乎不够优雅。
最佳答案
作为替代方案,请考虑 org.netbeans.swing.outline.Outline
,进一步讨论here .
关于swing - 如何修改 TreeCellEditor 的默认编辑行为 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3741650/