code: private void organizeColumns()
      {
          columns = new Vector<TableColumn>();
          for (int bi = 0; bi < nested.size(); bi++)
          {
              Box box = nested.elementAt(bi);
              if (box instanceof TableColumn)
              {
                  TableColumn col = (TableColumn) box;
                  if (col.getSpecifiedWidth().equals(""))
                      col.setSpecifiedWidth(colwidth); //when column width is not set, use the group width
                  for (int i = 0; i < col.getSpan(); i++)
                  {
                      if (i == 0)
                          columns.add(col);
                      else
                          columns.add(col.copyBox());
                  }
              }
          }
          //when there are no <col> elements, use the span attribute
          if (columns.isEmpty())
          {
              TableColumn col = new TableColumn(TableColumn.createAnonymousColumn(getParent().getElement().getOwnerDocument()), g, ctx);
              col.setSpecifiedWidth(colwidth);
              for (int i = 0; i < span; i++)
                  columns.add(col.copyBox());
          }
      }
docs: ====================================================================================