Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT流量表填充单元_Gwt - Fatal编程技术网

GWT流量表填充单元

GWT流量表填充单元,gwt,Gwt,在GWT中,我试图在网格中获得一个带有按钮的FlexTable,以便单击其中一个按钮会导致某些事情发生。但是,当我在浏览器中查看结果时,会得到以下结果: +-+-+ +-+ |a|b| |c| +-+-+ +-+ |e| +-+-+-+-+-+ |d|h|i|f|g| +-+-+-+-+-+ |j| +-+ |k| +-+ 而我想要的是: +-+---+---+ |a| b | c | +-+---+-+-+ | | e |

在GWT中,我试图在网格中获得一个带有按钮的FlexTable,以便单击其中一个按钮会导致某些事情发生。但是,当我在浏览器中查看结果时,会得到以下结果:

+-+-+ +-+  
|a|b| |c|  
+-+-+ +-+  
  |e|      
+-+-+-+-+-+
|d|h|i|f|g|
+-+-+-+-+-+
  |j|      
  +-+      
  |k|
  +-+
而我想要的是:

+-+---+---+
|a| b | c |
+-+---+-+-+
| | e | | |
| +-+-+ | |
| |h|i|f|g|
|d+-+-+ | |
| | j | | |
| +---+-+-+
| |   k   |
+-+-------+
我尝试按照API中的建议使用
table.getFlexCellFormatter().setColSpan(row,col,span)
,但这导致了上面的第一个结果。我该怎么做有什么想法吗

@我的密码是

public MyPanel() {
    Button b;
    FlexTable ft = new FlexTable();
    ClickHandler click = new ClickHandler() {
        @Override
        public void onClick() {
            // do something here with the button that was clicked
        }
    }
    b = new Button("a");
    b.addClickHandler(click);
    ft.setWidget(0, 0, b);
    // do the same for button "b" at (0,1), "c" at (0,3), "d" at (1,0), "e" at (1,1),
    // "f" at (1,3), "g" at (1,4), "h" at (2,1), "i" at (2,2), "j" at (3,1), "k" at (4,1)
    ft.getFlexCellFormatter().setColSpan(0, 1, 2);
    ft.getFlexCellFormatter().setColSpan(0, 3, 2);
    ft.getFlexCellFormatter().setRowSpan(1, 0, 4);
    ft.getFlexCellFormatter().setColSpan(1, 1, 2);
    ft.getFlexCellFormatter().setRowSpan(1, 3, 3);
    ft.getFlexCellFormatter().setRowSpan(1, 4, 3);
    ft.getFlexCellFormatter().setColSpan(3, 1, 2);
    ft.getFlexCellFormatter().setColSpan(4, 1, 4);
}

在表格单元格上设置colspan和rowspan不会更改相邻单元格的索引,它只是将它们推开。例如,要实现此表:

+-+-+
|a|b|
| |-+
|a|c|
+-+-+
我们使用:

ft.setWidget(0, 0, a);
ft.setWidget(0, 1, b);
ft.setWidget(1, 0, c); // !!!
ft.getFlexCellFormatter().setRowSpan(0,0,2);
请参阅,widget
c
位于属于第一行的第一个单元格中。如果你考虑生成的HTML:这样做可能有助于看到这种情况:

<table>
  <tr>
    <td rolspan="2">a</td><td>b</td>
  </tr><tr>
    <td>c</td>
  </tr>
</table>

虽然这部分解决了问题,但并不能解决按钮扩展以完全填充单元格的问题。如上所述,我希望,例如,“e”按钮的宽度与“h”和“I”按钮的组合宽度相同。这是一个风格问题。将按钮宽度和高度设置为
100%
,它们将完全填满容器。这对宽度有效,但对高度无效(即按钮“d”、“f”和“g”仍然没有对齐。)啊。。。对抱歉,
height:100%
在一行范围内不起作用。遗憾的是,除了不使用表之外,我能找到的所有东西都没有列出任何修复方法。在这方面,or可能是有用的。
ft.setWidget(0, 0, a);
ft.setWidget(0, 1, b);
ft.setWidget(0, 2, c);
ft.setWidget(1, 0, d);
ft.setWidget(1, 1, e);
ft.setWidget(1, 2, f);
ft.setWidget(1, 3, g);
ft.setWidget(2, 0, h);
ft.setWidget(2, 1, i);
ft.setWidget(3, 0, j);
ft.setWidget(4, 0, k);
ft.getFlexCellFormatter().setColSpan(0, 1, 2);
ft.getFlexCellFormatter().setColSpan(0, 2, 2);
ft.getFlexCellFormatter().setRowSpan(1, 0, 4);
ft.getFlexCellFormatter().setColSpan(1, 1, 2);
ft.getFlexCellFormatter().setRowSpan(1, 2, 3);
ft.getFlexCellFormatter().setRowSpan(1, 3, 3);
ft.getFlexCellFormatter().setColSpan(3, 0, 2);
ft.getFlexCellFormatter().setColSpan(4, 0, 4);