2009-10-21 31 views
0

我是GWT新手,請耐心等待。GWT:從另一個類中加載面板的內容

我想從一個onModuleLoad()中實現一個Horizo​​ntalPanel,其中左側是一個簡單的導航菜單。

但是,我想加載面板的右側,取決於用戶在導航菜單中選擇的內容。這在一個巨大的課堂上很簡單,但我希望爲每個導航選項編寫一個課程。

例如:

  1. 用戶點擊選項1在左邊的菜單中,實例從選項1類選項1對象,並將其添加到右側窗格中。
  2. 用戶單擊左側菜單中的option2,實例化Option2類中的Option2對象,並覆蓋先前右側窗格中的任何內容。

這可以在沒有爲每個選項創建定製小部件的情況下完成嗎?

如果是這樣怎麼樣?請幫忙!

您的幫助表示感謝!

Harperonline

回答

0

假設你正在使用Horizo​​ntalSplitPane,你可以做到以下幾點:

選項2:

HorizPanel.getRightWidget().removeFromParent(); 
HorizPanel.setRightWidget(new Option2()); 

選項1:

Widget W = HorizPanel.getRightWidget(); 
w.add(new Option1()); 

除此之外,我我不確定你在問什麼。您必須以某種方式跟蹤要更新的元素。但GWT讓你能夠覆蓋已經創建的小部件,所以你在做什麼不應該是不可能的。

+0

謝謝。 我喜歡這個想法: HorizPanel.getRightWidget()。removeFromParent(); HorizPanel.setRightWidget(new Option2()); 由於Horizo​​ntalPanel只有2個單元格,因此當用戶在左側導航菜單中選擇一個新選項時,我可以踩踏右側面板中的內容。 乾杯! – user193867 2009-10-21 15:10:24

+0

樂意幫忙!我剛剛開始使用GWT,所以這對我來說實際上非常有用。問候。 – 2009-10-21 16:57:49

0

只需在您的GWT開始類中創建一個公共靜態類Widget變量(public static Widget contentPanel = new VerticalPanel())。將此小部件添加到水平面板的右側。然後,當您單擊左側導航時,只需根據需要創建其每個類,然後使該類構造函數調用contentPanel.clear(),最後調用contentPanel.add()。

如果你想簡化這個過程。你可以讓你的單獨的內容類實現一個通用的抽象類來處理所有常見的作品。

相關問題