2014-11-04 113 views
1

请参考下面的代码。
我写了一个SamplePanel拿着小部件。 我没有扩展任何Panel类创建SamplePanel
当我测试它时,它按预期工作。
现在我的问题是,我可以继续创建这样的面板吗?或者我应该从任何现有的GWT面板extend
任何表现或任何其他问题可能会在未来?关于创建容器的建议

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; 
    } 

} 

回答

0

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

例如,这是由一个GWT面板实现的接口列表:

HasAttachHandlers,HasHandlers,事件监听,HasVisibility, HasWidgets,HasWidgets.ForIsWidget,IsWidget, java.lang.Iterable

LayoutPanel实现更:

HasAttachHandlers,HasHandlers,EVENTLIST ENER,AnimatedLayout, HasVisibility,HasWidgets,HasWidgets.ForIsWidget,IndexedPanel, IndexedPanel.ForIsWidget,IsWidget,ProvidesResize,RequiresResize, java.lang.Iterable

您的面板没有实现它们。也许它们不是您的用例所必需的,但是当您构建更复杂的用户界面时很容易错过某些东西。

我始终更喜欢使用由成千上万的开发人员在实际应用中开发和测试的小部件,即使我可以轻松地构建类似的东西。

+0

好的。谢谢你的宝贵意见。 – user414967 2014-11-04 05:43:53