在java中跨平台处理拖放和上下文菜单事件

时间:2009-07-19 18:02:01

标签: java cross-platform

我正在构建一个小型GUI应用程序,我在内部使用拖放自定义组件。现在我想在已启用拖放功能的组件上安装上下文菜单。

现在我的问题是,如何正确区分这两个事件。 对于上下文菜单,有一个API函数,但对于DnD我找不到。 我使用鼠标按下来触发DnD,但是例如在Windows上下文菜单上停止工作,因为它们是在鼠标按下时触发的。

2 个答案:

答案 0 :(得分:1)

对于DnD,请使用鼠标按下和鼠标移动的组合。

对于上下文菜单,使用鼠标单击事件(因此当释放鼠标按钮时菜单会出现,而不是按下时)。

答案 1 :(得分:1)

Swing tutorial有关于“如何使用菜单”和“拖放”的部分。

菜单部分显示如何通过检查MouseEvent的“isPopupTrigger”来显示弹出窗口。虽然从JDK5开始,这个过程比较容易,因为添加了setComponentPopupMenu()方法。

DnD上的secton显示了如何使用内置的DnD支持。