2011-05-31 18 views
0

我有下面的問題,這似乎很簡單,但我花了超過2小時,無法解決它。通過包裝器將LayoutPanel添加到RootPanel

看看下面的例子。

public class HeaderForm extends VerticalPanel 
{ 
public HeaderForm() 
{ 
Label label = new Label("Some text here which should be visible"); 
    this.add(lable); 

} 
} 

這裏是入口點

public class SomeApp implements EntryPoint 
{ 

public void onModuleLoad() 
{ 

HeaderForm instance = new HeaderForm(); 
RootPanel.get().add(instance); 
} 

....在此之後,我們應該看到標籤的文字,對不對?但沒有...

這對我來說很奇怪,如果我這樣做,但直接沒有包裝類...它工作正常。

請,建議..這麼簡單,但不工作。

+0

'HeaderForm'中的錯字(應該讀取'.add(label)') - 但那不應該是問題...或者? – 2011-05-31 13:01:44

+0

是的,這不是問題,這只是我編碼手冊的例子。 – brakebg 2011-05-31 13:24:00

+0

看起來應該對我有用。 「此處顯示的某些文字」是否出現在DOM中?如果你的意思是'LayoutPanel'而不是'VerticalPanel',你應該使用'RootLayoutPanel.get()'而不是'RootPanel.get()'。 – 2011-05-31 15:30:44

回答

2

我相信你想要做的是創建一個新的Widget。 你的類HeaderForm應該擴展Composite,然後你可以創建一個VerticalPanel並添加你的標籤。 然後使用initWidget初始化VerticalPanel。

public class HeaderForm extends Composite 
{ 
public HeaderForm() 
{ 
    VerticalPanel verticalPanel = new VerticalPanel(); 
    Label label = new Label("Some text here which should be visible"); 
    verticalPanel.add(label); 
    initWidget(verticalPanel); 
} 
} 

您現在可以在EntryPoint中創建自定義小部件的實例。 如果我犯了錯誤,請糾正我。 如果您想將其他東西添加到您的VerticalPanel,您可以創建一個函數來返回VerticalPanel或直接向其中添加其他小部件。

希望這能解決你的問題:) 乾杯!

+0

謝謝格倫,非常有用。 – brakebg 2011-06-02 08:02:53

相關問題