建议创建容器

时间:2014-11-04 04:11:16

标签: java gwt

请参阅以下代码 我写了一个SamplePanel来保存小部件。 我没有延长任何Panel课程来创建SamplePanel 当我测试它时,它按预期工作。
现在我的问题是,我可以继续创建这样的面板吗?或者我应该extend来自任何现有的GWT专家组? 未来可能会出现任何表现或任何其他问题吗?

import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class SamplePanel {

    private Element divContainer;

    public SamplePanel() {
        divContainer = DOM.createDiv();

    }

    public void addWidgets(Widget... widgets) {

        for (Widget widget : widgets) {
            addWidget(widget);
        }
    }

    public void addWidget(Widget widget) {

        if (widget instanceof TextBox) {
            widget.getElement().addClassName("textfieldtheme");
        }
        divContainer.appendChild(widget.getElement());

    }

    public Element getContainer() {
        return divContainer;
    }

}

1 个答案:

答案 0 :(得分:0)

许多标准GWT小部件(包括面板)具有不同的浏览器特定实现,并实现了许多不同的接口。

例如,这是GWT Panel实现的接口列表:

  

HasAttachHandlers,HasHandlers,EventListener,HasVisibility,   HasWidgets,HasWidgets.ForIsWidget,IsWidget,   java.lang.Iterable

LayoutPanel实现了更多:

  

HasAttachHandlers,HasHandlers,EventListener,AnimatedLayout,   HasVisibility,HasWidgets,HasWidgets.ForIsWidget,IndexedPanel,   IndexedPanel.ForIsWidget,IsWidget,ProvideResize,RequiresResize,   java.lang.Iterable

您的小组未实施其中任何一项。也许它们对于您的用例不是必需的,但是当您构建更复杂的用户界面时,很容易错过一些东西。

我总是喜欢使用由数千名开发人员在现实应用程序中开发和测试的小部件,即使我可以轻松地自己构建类似的东西。