swing - 如何修改 TreeCellEditor 的默认编辑行为 (Java)

标签 swing jtree java

我有一个自定义对象,它具有描述(字符串)和优先级值(整数)。我在 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/

相关文章:

java - 如何检测 Java 图像类中的点击事件?

java - 在 JFrame setVisible 之后更改 JLabel 的首选大小

java - 如何禁用 Jtree 的特定节点(包括子节点)

java - JTree 空指针加载第一行

java - 将 getTime() 的值转换为毫秒时出错

java - 如何在 DefaultListModel 中添加 JButton?

Java JTree 节点是一个可点击的 URL 链接

java - 如何使用 Junit 测试工具测试 void 方法?

java - IBM DB2 - 查找我的数据库托管 JDBC 连接的位置?

java - 使用 setValueAt 重新创建互斥复选框