Ответ 1
EDIT: с GWT 2.2 поддерживается таблица table.setWidth и table.setColumnWidth
table.setWidth("100%", true);
table.setColumnWidth(nameColumn, 35.0, Unit.PCT);
table.setColumnWidth(addressColumn, 65.0, Unit.PCT);
Мне удалось расширить CellTable с помощью метода, который устанавливает ширину программно. Это немного взломать, поскольку все реальные методы, которые должны делать это, являются частными для CellTable, и похоже, что GWT должен предоставлять этот метод напрямую, но он, похоже, работает.
public void setColumnWidths(List<Integer> widths)
{
TableElement tel = TableElement.as(getElement());
NodeList<Element> colgroups = tel.getElementsByTagName("colgroup");
if (colgroups.getLength() == 1)
{
TableColElement cge = TableColElement.as(colgroups.getItem(0));
NodeList<Element> cols = cge.getElementsByTagName("col");
for (int j = 0; j < widths.size(); j++)
{
TableColElement column = null;
if (cols.getLength() > j)
{
column = TableColElement.as(cols.getItem(j));
}
else
{
column = cge.appendChild(Document.get().createColElement());
}
column.setWidth(widths.get(j)+"px");
}
}
}