【问题标题】:Does GWT have a Paragraph widget?GWT 是否有段落小部件?
【发布时间】:2009-10-03 00:49:33
【问题描述】:

我画了一个空白。 GWT 有生成 HTML P 标记的小部件吗?

我只希望 P 标签出现在 DOM 中,没有任何无关的 DIV。

【问题讨论】:

    标签: gwt widget


    【解决方案1】:

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

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

    【讨论】:

    • 感谢希尔布兰德的回答。通过使 PPanel 也实现 HasText,我得到了我正在寻找的解决方案。
    • 随着当前 GWT 的更新,super 构造函数调用现在将是:super(DOM.createElement("p"));
    • @checketts 实际上使用DOM 类是老式GWT。
    • 感谢希尔德布兰德。我曾尝试使用示例代码 sn-p 但 .cast()(Element) 演员给我带来了麻烦(尽管事后看来我发现我做错了什么)。我去掉了额外的演员表,它也起作用了。 super( Document.get().createPElement());
    • 我删除了.cast() 调用和(Element) 演员;没有它们它确实有效。感谢@checketts 的说明。
    【解决方案2】:

    如果您需要一个可以包含其他小部件的段落小部件,您可以使用FlowPanel

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

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

    【讨论】:

      【解决方案3】:

      你试过HTMLPanel小部件吗?

      【讨论】:

      • 我相信 HTMLPanel 呈现的是 DIV 元素,而不是 P 元素。
      • HTMLPanel 有构造函数 HTMLPanel(String tag,String html) 所以它可以是任何元素
      【解决方案4】:

      不要破坏 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");
      

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-09
          • 2011-08-15
          • 1970-01-01
          • 1970-01-01
          • 2015-01-05
          • 1970-01-01
          • 2012-03-15
          • 2011-09-10
          相关资源
          最近更新 更多