2013-01-08 35 views
0

我想要做的是防止在JTree上剪切/复制/粘贴,因为我希望通过拖放完成所有节点移动。如何防止JTree的默认Cut事件?

已经阻止处理程序的canImport和importData方法的复制和粘贴,但我无法考虑如何防止剪切。

此外,所有这些没有工作:

Tree.getActionMap().put("cut", null); 

InputMap inputMap = Tree.getInputMap(JComponent.WHEN_FOCUSED); 
inputMap.put(KeyStroke.getKeyStroke('X', java.awt.event.InputEvent.CTRL_MASK), null); 

ActionMap actionMap = Tree.getActionMap(); 
actionMap.put("cut", null); 
+0

为了更好地帮助越早,张贴[SSCCE](http://sscce.org ) –

+0

@ user1953221这是DND的参数之一,阅读ORACLE DND教程(有关于JList或JTree ???的示例) – mKorbel

+0

http://docs.oracle.com/javase/tutorial/uiswing/dnd/listpaste.html本教程使用actionMap.put()为“剪切”操作设置绑定。我尝试过,但没有奏效。 – user1953221

回答

1

这个工作对我来说:

ActionMap actionMap = tree.getActionMap(); 
actionMap.remove("cut"); 
actionMap.getParent().remove("cut"); 
actionMap.remove("copy"); 
actionMap.getParent().remove("copy"); 
actionMap.remove("paste"); 
actionMap.getParent().remove("paste"); 
+0

很酷,工作。谢谢! – user1953221