从 SWT Snippets 里提取出来的, 虽然 JFace 里有更好的 MenuManager 之类的, 但是这个对 SWT 就可以用了.
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.ToolItem;
public class SWTUtil {
/**
* Assign a popup menu to a widget.
* Whenever the widget is selected, the popup menu will displayed.
* @param parent
* @param popupMenu
*/
public static void assignPopupMenuToWidget(final ToolItem parent, final Menu popupMenu) {
parent.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
public void widgetSelected(SelectionEvent evt) {
// if (evt.detail == SWT.ARROW) {
Rectangle b = parent.getBounds();
Point pt = new Point(b.x, b.y + b.height);
pt = parent.getParent().toDisplay(pt);
popupMenu.setLocation(pt.x, pt.y);
popupMenu.setVisible(true);
// }
}
});
}
}
posted on 2007-10-10 13:47 gembin 阅读(440) 评论(0) 编辑 收藏
本文介绍如何使用SWT Util工具类将弹出菜单关联到工具栏上的ToolItem,通过监听器在选中时显示菜单。示例代码来源于SWT Snippets,适用于纯SWT环境。
710

被折叠的 条评论
为什么被折叠?



