如何区分在swt中弹出菜单上单击鼠标右键?Java,swt,如何区分右键点击左键点击弹出菜单
通过添加一个SelectionListener我可以在左侧和右侧单击,但我怎样知道哪一个被使用?是否有可能在MenuItem上有一个MouseListener?
我想要做的是类似于浏览器收藏菜单,左键单击以选择 并右键单击收藏的上下文菜单。
Button bn = new Button(shell, SWT.FLAT);
bn.setText("Right Click to see the popup menu");
Menu popupMenu = new Menu(bn);
MenuItem newItem = new MenuItem(popupMenu, SWT.CASCADE);
newItem.setText("New");
newItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
System.out.print("SELECTED1\n");
}
public void widgetDefaultSelected(SelectionEvent e) {
System.out.print("SELECTED2\n");
}
});
澄清: 对不起,没能包括屏幕截图,但我认为你能明白我的意思,如果你按照这个描述。
- 选择在Windows资源管理器中的收藏夹菜单(或可能是其他任何浏览器)
- 如果你对你的最爱之一左键单击浏览器会打开这个网址, 但在这你也可以用鼠标右键单击喜爱。
- 右键单击将弹出一个适用于所选收藏夹的上下文菜单。
我还需要两个不同的操作为同一个MenuItem(实际上是为了与浏览器相同的目的)。
好的,但选择(左键单击)和上下文菜单(右键单击)已包含在我的答案中... – Baz 2014-10-31 15:25:08
是在按钮上,但我无法在MenuItem上做到这一点。事实上,我怀疑操作系统只有菜单中的“选择”事件,并且据我所知,此事件不包含有关使用该按钮的信息。它可以在浏览器中成为一个只能看起来像菜单的小部件。当然,我也可以这样做,但如果可以使用菜单,它会节省很多工作。 – owan 2014-10-31 20:56:21
好的,经过一些测试后,我很确定无法区分'MenuItem'上的左键和右键。 – Baz 2014-10-31 22:06:55