扩展GWT的Widget类

时间:2010-01-17 22:06:55

标签: java gwt textbox label widget

我正在创建一个名为'Cell'的新类,它扩展了GWT Widget类。此类的目的是成为电子表格中的单元格 - 因此它必须能够在GWT Label对象和GWT TextBox对象之间切换。

我能想到这样做的唯一方法是使Cell扩展Widget并包含一个名为'cell'的私有Widget,我可以存储当前的Label或TextBox对象。像这样......

public class Cell extends Widget {

private Widget cell;

...

}

不幸的是,这个解决方案并不理想,因为如果我希望Cell像Widget一样完全运行,我将覆盖Widget的方法来指向我的内部'cell'小部件。有没有更优雅的方法来创建一个Cell Widget,它可以是Label或TextBox?

1 个答案:

答案 0 :(得分:8)

为什么不扩展Composite而不是扩展Widget?

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

   ...
}

只需根据需要将labeltextBox窗口小部件添加/移除到container

使用复合是更优雅的方式,因为您不公开整个Widget界面,而只展示电子表格单元格所需的方法。

从GWT文档中检出this section以构建自定义小部件以获取更多信息。