我应该使用什么GWT小部件来显示Object的String属性?

时间:2017-11-17 11:08:35

标签: java gwt

在我的GWT应用程序中,我的onSuccess(Object result)方法最终会使用Object属性检索ArrayList

此属性包含具有String属性的对象。

我希望将这些String属性显示到我的GUI中,在研究CellTable和其他小部件后,我找不到一种简单的方法。我无法修改此C ellTable source code example以满足我的需求。

对我来说,最简单的方法是什么? (在初学者的背景下很简单。)

编辑*每个字符串属性都需要显示在标题列中,并且会有多行信息。

2 个答案:

答案 0 :(得分:2)

另一个选项是CellList<T> - 这可以让您使用某种List<T>并提供可以绘制每个项目的单元格。因为它不是为每一件物品构建一个小部件,所以它的重量要轻得多,特别是如果你最终绘制了数百或数千件物品。

CellTable<T>DataTable<T>相比,CellList<T>将每个单元格映射到每个项目,而不是假设列表中的每个项目都是具有许多属性的对象,每个属性都是应该进入自己的专栏。

作为如何绘制每个字符串的示例,com.google.gwt.cell.client.TextCell知道每个字符串就足够了并按原样自动绘制,没有自定义样式或任何内容。由于您以后需要更多样式,您可以构建自己的单元格。

带有评论的小例子,取自GWT的CellListExample和评论(并略微编辑):

// Create a cell to render each value.
TextCell textCell = new TextCell();

// Create a CellList that uses the cell.
CellList<String> cellList = new CellList<String>(textCell);

// Set the total row count. This isn't strictly necessary, but it affects
// paging calculations, so its good habit to keep the row count up to date.
cellList.setRowCount(data.getListOfStrings().size(), true);

// Push the data into the widget.
cellList.setRowData(0, data.getListOfStrings());

// Add the cell list to its parent widget
parent.add(cellList);

答案 1 :(得分:1)

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

或网格http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/Grid.html

这些基本相同。但Grid更快,但需要事先知道它的列数和行数。