code: public void updateColumn(int c, TableColumn col)
      {
          int r = 0;
          while (r < getRowCount())
          {
              TableCellBox cell = cells[c][r];
              if (cell != null)
              {
              	cell.setOwnerColumn(col);
                  //minimal width
                  int min = cell.getMinimalWidth() / cell.getColspan();
                  if (min > col.getMinimalWidth())
                      col.setMinimalWidth(min);
                  //maximal width
                  int max = cell.getMaximalWidth() / cell.getColspan();
                  if (max > col.getMaximalWidth())
                      col.setMaximalWidth(max);
                  //fixed width and percentages
                  if (cell.wset) 
                  {
                      col.wset = true;
                      if (cell.isRelative())
                      {
                          col.setRelative(true);
                          if (col.percent < cell.percent)
                              col.percent = cell.percent;
                      }
                      else
                      {
                          if (cell.getContentWidth() > col.abswidth)
                              col.abswidth = cell.getContentWidth();
                      }
                  }
                  //ensure the minimal width
                  if (col.getWidth() < col.getMinimalWidth())
                      col.setColumnWidth(col.getMinimalWidth());
                  r += cell.getRowspan();
              }
              else
                  r++;
          }
      }
docs: Checks the maximal and minimal width of the column, if the column has fixed width
  and if it is relative. Updates the appropriate information in the TableColumn
  structure.
  @param c the column index
  @param col the column to be updated