如何将 Popup 定位在 GWT 中的鼠标单击位置。我尝试在 flextable 上使用 getX 和 getY 并将 Popup 设置到该位置,但这不起作用。
问问题
776 次
1 回答
2
快速示例:
final RootLayoutPanel rootLayoutPanel = RootLayoutPanel.get();
final FocusPanel focusPanel = new FocusPanel();
/* just to make the clickable area visible */
focusPanel.getElement().getStyle().setBackgroundColor("red");
rootLayoutPanel.add(focusPanel);
final PopupPanel popupPanel = new PopupPanel();
popupPanel.add(new Label("Popup"));
popupPanel.show();
focusPanel.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
final int left = event.getClientX();
final int top = event.getClientY();
popupPanel.setPopupPosition(left, top);
}
});
笔记:
- 添加focusPanel后一定要显示PopupPanel,否则会在focusPanel后面。
- 我在这里使用 RootLayoutPanel,但您也可以相对于不同的元素工作(使用
left = event.getRelativeX(myContextElem);
等) - 如果您不想使用 FocusPanel(具有 ClickHandlers),您也可以使用 MouseDownHandler,但在这种情况下,您需要调用
sinkEvents(Event.ONMOUSEDOWN)
.
于 2012-07-04T10:59:17.777 回答