2014-09-29 4 views
4

Как отобразить всплывающее меню с помощью мыши левой кнопкой мыши? Я знаю, что по умолчанию используется щелчок правой кнопкой мыши. Но я хочу расширить (отобразить) меню только обычным выбором кнопки. (обычным щелчком левой кнопкой мыши). Как всплывающее всплывающее меню с помощью обычного правого щелчка выглядит следующим образом.Как отобразить всплывающее меню с помощью мыши левой кнопкой мыши в swt?

final Button btnNewgroup = new Button(compositeTextClient, SWT.NONE); 
Menu menu = new Menu(btnNewgroup); 
btnNewgroup.setMenu(menu); 
MenuItem mntmNewItem = new MenuItem(menu, SWT.NONE); 
mntmNewItem.setText("New Item"); 
MenuItem mntmNewItem2 = new MenuItem(menu, SWT.NONE); 
mntmNewItem2.setText("New Item2"); 

ответ

6

С помощью клавиши выбора слушателя на кнопку:

btnNewgroup.addSelectionListener(new SelectionAdapter() { 
    @Override 
    public void widgetSelected(final SelectionEvent e) 
    { 
    Rectangle bounds = btnNewgroup.getBounds(); 

    Point point = btnNewgroup.getParent().toDisplay(bounds.x, bounds.y + bounds.height); 

    menu.setLocation(point); 

    menu.setVisible(true); 
    } 
}); 
+1

спасибо. Это сработало. Фактически menu.setVisible (true); достаточно для включения в метод widgetSelected(). Но есть ли способ удалить действие щелчка правой кнопкой мыши по умолчанию? Потому что теперь меню выставляется для правого и левого кликов. –