Хочу я, чтобы при нажатии на кнопку вываливалось меню. Ну типа как Start-меню в винде. Всё очень просто - по нажатию кнопки создаём и разворачиваем в месте тыкания мышкой.
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Menu;
...
final Button mainMenuButton = new Button(composite, SWT.PUSH);
mainMenuButton.setText("¿?");
mainMenuButton.setLayoutData( ... );
mainMenuButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
Menu dropMenu = createMainMenu( getShell() );
Point point = mainMenuButton.toDisplay(new Point(event.x, event.y));
dropMenu.setLocation( point.x, point.y+mainMenuButton.getBounds().height );
dropMenu.setVisible(true);
}
});
Далее на чистом SWT как-то так:
public static Menu createMainMenu( final Shell shell )
{
Menu dropMenu = new Menu(shell, SWT.POP_UP);
...
MenuItem item0 = new MenuItem(dropMenu, SWT.PUSH);
item0.setText(...);
item0.addListener(SWT.Selection, ...);
....
return dropMenu;
}
На JFace как-то так:
public Menu createMainMenu( final Shell shell )
{
MenuManager popManager = new MenuManager();
popManager.add(new ActionOne(shell));
...
popManager.add(new Separator());
...
Menu dropMenu = popManager.createContextMenu(shell);
return dropMenu;
}