2010-01-17 72 views
1

我正在做一個名爲'Cell'的新類,它擴展了GWT Widget類。這個類的目的是作爲電子表格中的單元格 - 因此它必須能夠在作爲GWT標籤對象和GWT文本框對象之間切換。擴展GWT的Widget類

,我能想到這樣做的唯一方法是通過使細胞擴展的Widget,包括所謂的「細胞」,我可以存儲當前標籤或文本框對象有私人的Widget。是這樣的...

public class Cell extends Widget { 

private Widget cell; 

... 

} 

不幸的是,這種解決方案並不理想,因爲如果我想的細胞像一個Widget完全操作,我將覆蓋Widget的方法來指向自己內心的「細胞」的Widget。有沒有更優雅的創建Cell Widget的方法,它可以是Label或TextBox?

回答

8

爲什麼不擴展複合而不是擴展Widget?

public class Cell extends Composite { 
    private Label label; 
    private TextBox textBox; 
    private SomeContainerWidget container; 

    ... 
} 

只需添加/根據需要去除labeltextBox小部件到container

使用複合材料是因爲你不暴露整個widget界面更優雅的方式,但只需要爲您的電子表格單元格的方法。

從GWT文檔用於創建自定義小部件的更多信息結帳this section

+0

太棒了!非常感謝,我剛開始看GWT,並沒有意識到這個類。 – 2010-01-17 22:19:22

+0

如果我不能延長複合材料怎麼辦? – marines 2013-09-27 14:51:43

+0

你能提供一些關於爲什麼你不能延長Composite的更多細節嗎? – Anurag 2013-09-27 19:32:20