Gwt 在一个单元格中添加多个小部件?

Gwt 在一个单元格中添加多个小部件?,gwt,flextable,Gwt,Flextable,使用FlexTable或Grid,我想将多个FlowPanel添加到一个单元格中。我知道这可以通过将多个FlowPanel添加到一个父FlowPanel并将父FlowPanel添加到单元格中来实现 只是想知道是否有办法将这些多个小部件添加到一个单元格中,而不将它们包装到父流面板中 如下面的示例所示,我不希望父div,而是希望子div直接显示在标记下面 <TABLE> <TR> <td> <div id="I

使用FlexTable或Grid,我想将多个FlowPanel添加到一个单元格中。我知道这可以通过将多个FlowPanel添加到一个父FlowPanel并将父FlowPanel添加到单元格中来实现

只是想知道是否有办法将这些多个小部件添加到一个单元格中,而不将它们包装到父流面板中

如下面的示例所示,我不希望父div,而是希望子div直接显示在标记下面

<TABLE>
    <TR>
        <td>
            <div id="I-DO-NOT-WANT-THIS-PARENT-DIV">
                <div id="CHILD1"></div>
                <div id="CHILD2"></div>
                <div id="CHILD3"></div>
                <div id="CHILD4"></div>
            </div>
        </td>
    </TR>   
</TABLE>  

有什么想法吗?

您可以操纵dom并将元素移动到它们的父级。使用gwtquery很容易:

import static com.google.gwt.query.client.GQuery.*;
...
final FlowPanel panel = new FlowPanel();
panel.add(new Label("1"));
panel.add(new Label("2"));
panel.add(new Label("3"));

final FlexTable table = new FlexTable();
table.setWidget(0, 0, panel);
RootPanel.get().add(table);

$(panel).children().appendTo($(panel).parent());
如果需要,使用gquery,您甚至可以将表的属性升级到面板,并继续向其中添加小部件:

HTMLPanel newpanel = $(panel).parent().as(Widgets).panel().widget();
panel.removeFromParent();
newpanel.add(new Label("4"));

我不知道是什么排序算法让你实现了这样的东西。我认为这是不可能的,每个电池都是这样设计的。无论如何,你可能有两种方法来解决这个问题:1。使用绝对面板作为单元格容器并重写和复制所有方法来构建您自己的flex表[在我看来,永远不要这样做]。2.你的问题到底是什么,这让你这样想,[希望能为你的质疑提供一个很好的解释]。无论如何,谢谢你花时间在这篇评论上唯一的原因是,我想要创建表的方式是假设我有一行和多列。在每一列中,我都需要放置不同的控件。根据我们的UI设计限制,我不想为每个div创建多行。你是在寻找合并单元格之类的东西吗???@user1730159:你是说,你想为每个列添加不同的组件,每个组件有不同的处理程序,或者每个单元格有不同的处理程序?!!!为了详细说明我正在尝试做什么,按照上面的表格结构,例如,我可以在CHILD1中有我的公司徽标,在CHILD2中有几个按钮的表格,一个手风琴与我的导航链接在CHILD3等…等…我希望所有这些控件放置在标签内的另一个右下方,没有其他父面板将它们放在一起。希望这些信息有助于理解我试图做的事情。我相信它会起作用,但我不想做任何DOM操作。我想看看是否有直接的GWT解决方案,比如,是否有我不知道的FlexTable或Grid API。无论如何,感谢您的解决方案。没有GWT核心解决方案,所有基于表的小部件都接受每个单元的唯一小部件。