2011-11-21 37 views
0

我想在verticalPanel中添加一個HTMLPanel我收到錯誤,試圖將其添加到html代碼中。如何使用GWT 2.4混合使用HTMLPanel和VerticalPanel?

我想要做的是創建一個圍繞我的小部件的邊框,因爲它是更多的垂直對齊模式,我選擇使用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> 

這是一個很好的辦法,如果是這樣,我怎麼做到這一點,還是有更好的辦法?

+0

請問你有沒有發佈相關的代碼和編譯錯誤? –

回答

2

您需要閱讀小部件的javadoc。

  • 如果一個widget實現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標籤內。

+0

我讀過它,但由於沒有更多地考慮接口而錯過了項目。謝謝! –