首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SimplePanel只能包含一个子小部件

SimplePanel只能包含一个子小部件
EN

Stack Overflow用户
提问于 2016-06-21 22:33:43
回答 2查看 472关注 0票数 0

当我多次运行以下代码并按下按钮" push“时,我收到浏览器错误"simplePanel只能包含一个子部件”。我该如何解决这个问题呢?提前谢谢你!Jogi

代码语言:javascript
运行
复制
public class Projekt implements EntryPoint {

    private RootPanel rootPanel;

    public void onModuleLoad() {

        rootPanel = RootPanel.get("gwtContainer");
        rootPanel.setSize("1902", "868");

         final AbsolutePanel boundaryPanel = new AbsolutePanel();
         boundaryPanel.setStyleName("frame1");
         boundaryPanel.setSize("1455px", "600px");       

         final Diagram diagram = new Diagram(boundaryPanel);

         RootPanel.get().add(boundaryPanel, 446, 242);


         final Connector con = new Connector(100, 300, 300, 500);

         Button la = new Button("Push");
         la.setSize("200", "200");
         RootPanel.get().add(la);

         Button la2 = new Button("Push2");
         la2.setSize("200", "200");
         RootPanel.get().add(la2);

         final Image img = new Image("images/concrete.svg");
         img.setSize("200", "200");


         final Shape shapei = new Shape(img);


         Image img2 = new Image("images/variable.svg");
         img2.setSize("200", "200");
         boundaryPanel.add(img2, 200,200);

         final Shape shapei2 = new Shape(img2);
         shapei2.showOnDiagram(diagram);

         la.addClickHandler(new ClickHandler(){

            @Override
            public void onClick(ClickEvent event) {
                 boundaryPanel.add(img, 100,100);
                 shapei.showOnDiagram(diagram);
            }

         });
         la2.addClickHandler(new ClickHandler(){

                @Override
                public void onClick(ClickEvent event) {

                     con.showOnDiagram(diagram);
                }

             });


         diagram.addDiagramListener(new DiagramListenerAdapter() {

              @Override
              public void onElementConnect(ElementConnectEvent event) {
                if (con.startEndPoint.isGluedToConnectionPoint()) {
                    Widget connected = con.startEndPoint.gluedConnectionPoint.parentWidget;
                    if(connected.equals(shapei.connectedWidget)){
                  Image logo = new Image("images/xor.svg");
                  logo.setSize("100", "100");
                  boundaryPanel.add(logo);
                }
                    else if(connected.equals(shapei2.connectedWidget)){
                         Image logo2 = new Image("images/and.svg");
                      logo2.setSize("100", "100");
                      boundaryPanel.add(logo2);
                    };
              }}
            });

}}
EN

回答 2

Stack Overflow用户

发布于 2016-06-21 23:59:17

RootPanel.get()是一个SimplePanel。您尝试向其添加多个子级,从而导致此错误。

相反,您应该将HTMLPanel添加到您的RootPanel中,然后将所有子项添加到此HTMLPanel中。

票数 1
EN

Stack Overflow用户

发布于 2016-06-21 23:45:52

我想你的图扩展了GWT的SimplePanel类?SimplePanel只能包含一个小部件,请看这里:

http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/SimplePanel.html

您可以扩展一个不同的类,或者在尝试添加新的小部件之前调用 remove (Widget w)方法来删除现有的小部件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37947326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档