扩展GWT的Widget类

Mic*_*int 1 java gwt label textbox widget

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

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

public class Cell extends Widget {

private Widget cell;

...

}
Run Code Online (Sandbox Code Playgroud)

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

Anu*_*rag 8

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

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

   ...
}
Run Code Online (Sandbox Code Playgroud)

只需根据需要添加/删除小部件labeltextBox小部件container.

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

结帐本节从GWT文档用于创建自定义窗口小部件的详细信息.