code: public void insertColumn(int columnIndex, ColumnSpec columnSpec) {
          if (columnIndex < 1 || columnIndex > getColumnCount()) {
              throw new IndexOutOfBoundsException(
                      "The column index " + columnIndex
                      + "must be in the range [1, " + getColumnCount() + "].");
          }
          colSpecs.add(columnIndex - 1, columnSpec);
          shiftComponentsHorizontally(columnIndex, false);
          adjustGroupIndices(colGroupIndices, columnIndex, false);
      }
docs: Inserts the specified column at the specified position. Shifts components that intersect the
  new column to the right hand side and readjusts column groups.<p>
  
  The component shift works as follows: components that were located on the right hand side of
  the inserted column are shifted one column to the right; component column span is increased
  by one if it intersects the new column.<p>
  
  Column group indices that are greater or equal than the given column index will be increased
  by one.
  
  @param columnIndex index of the column to be inserted
  @param columnSpec specification of the column to be inserted
  @throws IndexOutOfBoundsException if the column index is out of range