在n列上显示多个组件的最有效方法

时间:2013-05-27 14:38:38

标签: gwt gxt

我正在创建一个GWT应用。在我的所有屏幕中,一个需要是经常性的:向屏幕添加许多组件并自动将它们组织成2或3列。我想为此创建一个模板,但在此之前,我想知道是否已经为此需求定义了一些东西。

理想情况下,这就是我想要做的事情:

MyLayout myLayout = new MyLayout(nbColumns);
myLayout.add(widget1);
myLayout.add(widget2);
myLayout.add(widget3);
myLayout.add(widget4);
myLayout.add(widget5);
...

让组件自动整理到nbColumns列。

GWT或GXT 3中的任何解决方案都将受到赞赏。如果这个解决方案可以和uiBinder一起使用,我也很感激。

1 个答案:

答案 0 :(得分:0)

使用TableLayout

用法示例:

public class TableForm extends ContentPanel{
      setLayout(new TableLayout(2)); // number of columns in the table
      Button button1 = new Button(); // any widget, button is just example
      Button button2 = new Button(); 
      add(button1,new TableData("100%","100%")); // width and height
      add(button2,new TableData("100%","100%")); 
}

TableLayout的构造函数中的数字是列数 - 布局会自动按指定的列数组织您的小部件。您只需执行add()操作。

注意,通常最好不要设置高度。在这种情况下,小部件的高度将是默认值。否则,它将被拉伸到指定的百分比。

还有一个建议 - 使用TableLayout的setBorder(int width)(width> 0)方法来查看TableLayout如何组织你的组件。此外,TableData对象具有rowspan和colspan属性 - 您可能会发现它很有用。