如何在超链接中嵌入GWT小部件?

如何在超链接中嵌入GWT小部件?,gwt,hyperlink,Gwt,Hyperlink,我需要实现以下方法: public static Widget embedInHyperlink(String href, Widget content); 该方法需要创建一个小部件,该小部件在网站上呈现为 内容可以是包含图像、文本和其他小部件的复杂小部件 我的第一个解决方案是创建一个FocusPanel并添加一个ClickHandler,但是用户不能[Ctrl]-单击小部件在新的浏览器选项卡中打开它。当“我的内容”小部件未嵌入超链接时,右键单击并“在新选项卡中打开”或“另存为…”也是不可能的

我需要实现以下方法:

public static Widget embedInHyperlink(String href, Widget content);
该方法需要创建一个小部件,该小部件在网站上呈现为

内容可以是包含图像、文本和其他小部件的复杂小部件


我的第一个解决方案是创建一个
FocusPanel
并添加一个
ClickHandler
,但是用户不能[Ctrl]-单击小部件在新的浏览器选项卡中打开它。当“我的内容”小部件未嵌入超链接时,右键单击并“在新选项卡中打开”或“另存为…”也是不可能的。

您可以使用或扩展小部件来构造元素。如果您可以避免使用子窗口小部件,您会更好,因为当使用href包装窗口小部件时,通常不会对其进行全面测试以确保其正常工作。如果您必须使用子窗口小部件,您可以使用a来代替。

我不明白。HTMLPanel如何帮助我围绕现有小部件创建超链接?将包含具有唯一ID的超链接的html片段传递给HTMLPanel构造函数,然后使用add(widget,ID)方法附加小部件。我认为这里已经回答了这个问题:具体看基于锚的答案
public class AnchorPanel extends SimplePanel {

    public AnchorPanel(IsWidget content, String href, String target) {
        super(DOM.createAnchor());
        getElement().setAttribute("href", href);
        getElement().setAttribute("target", target);
        add(content);
    }

}