GWT-弹出位置

GWT-弹出位置,gwt,Gwt,如何在gwt中将弹出窗口定位到鼠标位置。 我有一个巨大的flextable,flextable包含一个按钮。如果按下按钮,则会出现一个包含一些数据的弹出窗口,但该弹出窗口始终显示在页面顶部。 如果用户位于表的底部,那么弹出窗口将不在视图中,并且他们无法看到它 如何获取鼠标位置的x和y坐标?要显示弹出窗口,请使用center()方法而不是show()方法。这将创建一个弹出窗口,并将其显示在浏览器视口的中心。要获取鼠标位置,可以从已传递给事件处理程序函数的事件中使用getClientX/Y()或ge

如何在gwt中将弹出窗口定位到鼠标位置。 我有一个巨大的flextable,flextable包含一个按钮。如果按下按钮,则会出现一个包含一些数据的弹出窗口,但该弹出窗口始终显示在页面顶部。 如果用户位于表的底部,那么弹出窗口将不在视图中,并且他们无法看到它


如何获取鼠标位置的x和y坐标?

要显示弹出窗口,请使用
center()
方法而不是
show()
方法。这将创建一个弹出窗口,并将其显示在浏览器视口的中心。

要获取鼠标位置,可以从已传递给事件处理程序函数的事件中使用getClientX/Y()或getScreenX/Y()

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.PopupPanel.PositionCallback;

public class CommentPanelPopupImage extends Image {
    public CommentPanelPopupImage(final int tableId, final String referenceId, final String title) {
        super("external-link-ltr-icon.png");
        setTitle("Click to see comments");
        final CommentPanelPopupImage commentPanelPopupImage = this;
        addClickHandler(new ClickHandler() {

            public void onClick(final ClickEvent event) {
                final CommentPopupPanel popup = new CommentPopupPanel(tableId, referenceId, title);
                popup.setPopupPositionAndShow(new PositionCallback() {

                    public void setPosition(int offsetWidth, int offsetHeight) {
                        popup.showRelativeTo(commentPanelPopupImage);
                    }
                });
            }
        });
    }
}

在主面板中添加此项并将全局vars对象中的坐标保存为静态(?)

然后从代码中的其他地方获取坐标

main_verticalPanel.addDomHandler(new MouseMoveHandler() {

            @Override
            public void onMouseMove(MouseMoveEvent event) {
                GlobalVars.mouseX = event.getX();
                GlobalVars.mouseY = event.getY();
            }

        }, MouseMoveEvent.getType());