【问题标题】:How to display a popup menu by mouse left click in swt?如何在swt中通过鼠标左键单击显示弹出菜单?
【发布时间】:2014-11-23 22:30:28
【问题描述】:

如何通过鼠标左键显示弹出菜单?我知道默认是鼠标右键单击。但我想通过正常选择一个按钮来扩展(显示)菜单。 (通过正常的左键单击)。正常右键弹出菜单的方法如下。

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");

【问题讨论】:

    标签: java menu click swt mouseleftbuttondown


    【解决方案1】:

    在按钮上使用选择监听器:

    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);
      }
    });
    

    【讨论】:

    • 谢谢。有效。实际上 menu.setVisible(true);足以包含在 widgetSelected() 方法中。但是有什么办法可以删除菜单的默认右键单击操作吗?因为现在右键和左键都会弹出菜单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多