我有一个 JTree,当我右键单击 JTree 中的节点时,它会显示一个 JPopupMenu。根据在 JTree 中选择的节点,在我的 JPopupMenu 中隐藏/显示或启用/禁用某些 JMenuItem 的最佳方法是什么?
想到的第一个解决方案是将 TreeSelectionListener 添加到 JTree 以用于“值更改”事件。在事件处理代码中,我将使用 TreeSelectionEvent 的 getNewLeadSelectionPath() 方法来获取最近选择的路径,并使用生成的 TreePath 对象的 getLastPathComponent() 方法来获取选定的节点。从这里我将有一系列 IF 语句访问我的 JPopupMenu 对象并执行隐藏/显示特定 JMenuItems 所需的修改。
但是,对此感觉有些不对劲,所以我决定问 SO 是否有更好的方法。