定位弹出式GWT

定位弹出式GWT,gwt,Gwt,如何在GWT中将弹出窗口定位在鼠标单击的位置。我尝试在flextable上使用getX和getY,并将弹出窗口设置为该位置,但不起作用。快速示例: final RootLayoutPanel RootLayoutPanel=RootLayoutPanel.get(); 最终FocusPanel FocusPanel=新FocusPanel(); /*只是为了使可点击区域可见*/ focusPanel.getElement().getStyle().setBackgroundColor(“红色”)

如何在GWT中将弹出窗口定位在鼠标单击的位置。我尝试在flextable上使用getX和getY,并将弹出窗口设置为该位置,但不起作用。

快速示例:

final RootLayoutPanel RootLayoutPanel=RootLayoutPanel.get();
最终FocusPanel FocusPanel=新FocusPanel();
/*只是为了使可点击区域可见*/
focusPanel.getElement().getStyle().setBackgroundColor(“红色”);
rootLayoutPanel.add(focusPanel);
最终PopupPanel PopupPanel=新PopupPanel();
添加(新标签(“弹出”);
popupPanel.show();
addClickHandler(新的ClickHandler(){
@凌驾
公共void onClick(最终ClickEvent事件){
final int left=event.getClientX();
final int top=event.getClientY();
popupPanel.SetPopupPopupPosition(左,上);
}
});
注:

  • 确保在添加focusPanel后显示PopupPanel,否则它将位于focusPanel后面
  • 我在这里使用的是RootLayoutPanel,但是您也可以相对于不同的元素工作(使用
    left=event.getRelativeX(myContextElem);
    等等)
  • 如果您不想使用FocusPanel(它有ClickHandler),您也可以使用MouseDownHandler,但在这种情况下,您需要调用
    sinkEvents(Event.ONMOUSEDOWN)