如何區分在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