我有一个具有描述(字符串)和优先级值(整数)的自定义对象。我在 JTree 中显示这些值是因为这种类型的不同对象之间存在层次关系。我只在 JTree 节点中显示描述,因为优先级对于显示目的并不重要。
我希望在编辑 JTree 节点(叶或节点)时弹出 JDialog - 例如按 F2。然后,此对话框将用于编辑描述和优先级。
如何防止 JTree 将文本默认编辑为文本字段并调用自定义对话框?
我想一个简单的方法是继承 DefaultTreeCellEditor 类并覆盖 isCellEditable 方法。然后,我将在那里调用 JDialog(当我实例化自定义 DefaultTreeCellEditor 时,我可以获得相关的初始化元素)并简单地返回 false 以防止默认编辑 - 但这对我来说似乎不够优雅。