我正在使用JTree,并在其中 raname一个JTree节点我正在使用右键单击(通过弹出重命名)或F2键或双击。但问题是:当我重命名一个名称并按 Enter 键时,节点已成功重命名,当我重命名一个名称并单击框架上的任何位置( Windows资源管理器样式)时,节点名称不会重命名。
请给我一个解决此问题的方法,并提前致谢。
答案 0 :(得分:6)
可能有点晚了,但正确的解决办法是致电JTree.setInvokesStopCellEditing(true)
。这将导致树在用户点击进入时执行重命名,或者当单元格编辑器失去焦点时。
答案 1 :(得分:1)
通过单击树中的其他位置来保存当前编辑的功能不是默认JTree
实现的一部分。您将不得不深入了解如何使用树的细节并进行一些特殊的自定义以实现此功能。这听起来像涉及Swing组件焦点的东西,即,当树获得焦点时,如果正在编辑节点,则保存节点重命名。