如何使用GWT2.4混合HTMLPanel和VerticalPanel?

如何使用GWT2.4混合HTMLPanel和VerticalPanel?,gwt,alignment,Gwt,Alignment,我试图将verticalPanel添加到HTMLPanel中,但尝试将其添加到html代码中时出错 我想做的是创建一个面板,在我的小部件周围有一个边框,因为它更像是一个垂直对齐模式,所以我选择使用verticalPanel 当我尝试在html表、tr或td标记之外添加时,我会遇到编译错误,但我想这就是为了显示边框所要做的 以下是一段代码片段: <g:HTMLPanel ui:field="mainPanel" > //Putting verticalPanel here caus

我试图将verticalPanel添加到HTMLPanel中,但尝试将其添加到html代码中时出错

我想做的是创建一个面板,在我的小部件周围有一个边框,因为它更像是一个垂直对齐模式,所以我选择使用verticalPanel

当我尝试在html表、tr或td标记之外添加时,我会遇到编译错误,但我想这就是为了显示边框所要做的

以下是一段代码片段:

<g:HTMLPanel ui:field="mainPanel" >
  //Putting verticalPanel here causes a compile error
  <table width="100%">
  //Putting verticalPanel here causes a compile error
    <tr>
  //Putting verticalPanel here causes a compile error
    <td>
            <g:Label ui:field="title"></g:Label>
    </td>
</tr>

//将verticalPanel放在此处会导致编译错误
//将verticalPanel放在此处会导致编译错误
//将verticalPanel放在此处会导致编译错误

这是一种好方法吗?如果是,我该如何做,或者有更好的方法吗?

您需要阅读小部件的javadoc

  • 如果小部件实现了HasText,则可以在其标记之间放置文本
  • 如果它实现了HasHTML,您可以将HTML放在它的标记之间
  • 否则(因为所有小部件都实现了HasWidgets),您只能将小部件放在其标记之间
  • 一些小部件具有可配置的子标签,其中子标签名称以小写字母开头
  • 一些小部件只允许一个子小部件。这些是SimplePanel的扩展
因此,如果您试图将HTML标记放在VerticalPanel之间,您将遇到错误,因为VerticalPanel没有实现hasText或hasHtml

HTMLPanel没有实现HasHTML,但是您可以将小部件和HTML混合放置,因为它的内容解析器是专门设计来识别放置在标记中的HTML的。这就是为什么它被称为HTMLPanel

以下内容不可接受,并导致编译错误:

<g:HTMLPanel>
  <g:VerticalPanel>
    <TABLE><TR><TD>Hello</TD></TR></TABLE>
  </g:VerticalPanel>
</g:HTMLPanel>

你好

因为HTML位于VerticalPanel标记中。

请您发布相关代码和编译错误,好吗?我已经读过了,但是由于没有考虑更多的接口,错过了您强调的项目。谢谢