gpt4 book ai didi

java - 单击时如何复制 SmartGWT 悬停文本的外观/功能

转载 作者:行者123 更新时间:2023-11-30 06:33:14 25 4
gpt4 key购买 nike

我有一种情况,当用户点击我的 UI 中的某些内容(可以是网格、标签等)时,我希望显示某些内容。我想要的是显示一个类似于触发悬停事件时显示的小框。但是,我只想在点击时显示它,而不是悬停。有没有办法不费吹灰之力地做到这一点?我知道我总是可以创建一个小的弹出窗口,但悬停文本正是我所需要的,并且可以智能地处理弹出窗口的位置(我认为使用窗口需要做更多的工作)。

最佳答案

我认为没有一种简单的方法可以做到这一点。这是我们使用的智能弹出类:

public class SmartPopup extends PopupPanel {

public void show(int left, int top) {
setPopupPositionAndShow(new PositionCallback() {
@Override
public void setPosition(int offsetWidth, int offsetHeight) {
int popupLeft = left;
if ((offsetWidth + left > Window.getClientWidth())
&& (left - offsetWidth > 0)) {
popupLeft = left - offsetWidth;
}

int popupTop = top;
if ((top + offsetHeight > Window.getClientHeight())
&& (top - offsetHeight > 0)) {
popupTop = top - offsetHeight;
}

setPopupPosition(popupLeft, popupTop);
}
});
}
}

一旦有了这样的类,您就可以扩展它以拥有您的工具提示样式、自动包含标签等...

public class ToolTip extends SmartPopup {
public ToolTip(String message) {
addStyleName("tool-tip-css");
add(new Label(message));
}
}

然后,您的代码将变得非常简单:

yourButtonOrWhatever.addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
ToolTip toolTip = new ToolTip("Hey, this is like a tool-tip for clicking!");
toolTip.show(event.getClientX(), event.getClientY());
}
});

我非常喜欢编写类,所以我什至可能会创建一个特殊的 ClickHandler 子类,这样我就不必一遍又一遍地输入这些行...

yourButtonOrWhatever.addClickHandler(new ToolTipHandler("Hey, this is like a tool-tip for clicking!"));

关于java - 单击时如何复制 SmartGWT 悬停文本的外观/功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8203100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com