GWT有段落小部件吗?

GWT有段落小部件吗?,gwt,widget,Gwt,Widget,我画了一张空白。GWT是否有生成HTMLP标记的小部件 我只想在DOM中显示p标记,而不显示任何无关的DIV。您尝试过widget吗?GWT没有这样的widget。但是你可以很容易地创建一个。SimplePanel有一个受保护的构造函数,允许它创建带有任何HTML标记的面板。要创建带有P标记的面板,只需扩展SimplePanel并使用自己的构造函数创建它: public class PPanel extends SimplePanel { public PPanel() {

我画了一张空白。GWT是否有生成HTMLP标记的小部件


我只想在DOM中显示p标记,而不显示任何无关的DIV。

您尝试过widget吗?

GWT没有这样的widget。但是你可以很容易地创建一个。SimplePanel有一个受保护的构造函数,允许它创建带有任何HTML标记的面板。要创建带有P标记的面板,只需扩展SimplePanel并使用自己的构造函数创建它:

  public class PPanel extends SimplePanel {
    public PPanel() {
      super(Document.get().createPElement());
    }
  }

为了不破坏Hilbrand Bouwkamp的答案,因为这是我从中得出的答案,我认为可能更有用的版本是在构造函数中使用字符串的版本。Hilbrand,如果你只是想把这个添加到你的答案中,请随意,我会删除这个答案

public class PPanel extends SimplePanel {
    public PPanel() {
        super(Document.get().createPElement());
    }

    public PPanel(String string) {
        super(Document.get().createPElement());
        getElement().setInnerText(string);
    }
}
这样,就不用打电话了:

PPanel panel = new PPanel();
panel.getElement().setInnerText("Text Here");
我们可以简单地称之为:

PPanel panel = new PPanel("Text Here");

GWT现在以类似的方式拥有PreElement和所有其他元素。

如果需要包含其他小部件的段落小部件,可以使用
流程面板:

FlowPanel panel = new FlowPanel(ParagraphElement.TAG);
panel.add(otherWidget);

允许使用任何HTML标记,并且由于
FlowPanel
扩展了
ComplexPanel
,您可以在其中附加任何其他小部件。

我相信HTMLPanel呈现的是DIV元素,而不是p元素。HTMLPanel具有构造函数HTMLPanel(字符串标记,字符串HTML),因此它可以是任何元素。感谢您的回答。通过使PPanel也实现HasText,我得到了我所寻求的解决方案。在使用当前GWT进行更新时,
super
构造函数调用现在将是:
super(DOM.createElement(“p”)
@checketts实际使用的
DOM
类是老式的GWT。谢谢Hildebrand。我曾尝试使用示例代码段,但
.cast()
(元素)
cast给我带来了麻烦(尽管事后我发现我做错了什么)。我去掉了多余的演员阵容,效果也不错<代码>超级(Document.get().createPElement())
我删除了
.cast()
调用和
(元素)
cast;没有它们它也能工作。谢谢你在checketts上的留言。