好的,对于标签,我们得到了ClickHandler,即当我们点击标签时它会做一些事情。
但是我想为标签做一些像Right-ClickHandler这样的事情,即当用户右键单击标签时,它会做一些事情。
有人说将小部件放入 DeckPanel 并在其上执行 RightClick Hanler。但是如果我们有很多标签,那么
每个标签都必须放入甲板面板吗?
如果是这种情况,那么代码可能很复杂,所以我想做标签的 RightClick 处理程序,就像我做普通的 ClickHandler 一样。怎么办?
好的,对于标签,我们得到了ClickHandler,即当我们点击标签时它会做一些事情。
但是我想为标签做一些像Right-ClickHandler这样的事情,即当用户右键单击标签时,它会做一些事情。
有人说将小部件放入 DeckPanel 并在其上执行 RightClick Hanler。但是如果我们有很多标签,那么
每个标签都必须放入甲板面板吗?
如果是这种情况,那么代码可能很复杂,所以我想做标签的 RightClick 处理程序,就像我做普通的 ClickHandler 一样。怎么办?
我强烈推荐这个例子(这有点旧,但处理上下文菜单的正确方法)。
lable.sinkEvents(Event.ONCONTEXTMENU);
lable.addHandler(
new ContextMenuHandler() {
@Override
public void onContextMenu(ContextMenuEvent event) {
event.preventDefault();
event.stopPropagation();
popupMenu.setPopupPosition( //custom menu here
event.getNativeEvent().getClientX(),
event.getNativeEvent().getClientY());
popupMenu.show();
}
}, ContextMenuEvent.getType())