code: public void addColumn(final Object columnName, final Vector columnData) {
  		this.columnIdentifiers.addElement(columnName);
  		if (columnData != null) {
  			final int columnSize = columnData.size();
  			if (columnSize > getRowCount()) {
  				this.dataVector.setSize(columnSize);
  			}
  			justifyRows(0, getRowCount());
  			final int newColumn = getColumnCount() - 1;
  			for (int i = 0; i < columnSize; i++) {
  				final Vector row = (Vector) this.dataVector.elementAt(i);
  				row.setElementAt(columnData.elementAt(i), newColumn);
  			}
  		} else {
  			justifyRows(0, getRowCount());
  		}
  
  		fireTableStructureChanged();
  	}
docs: Adds a column to the model. The new column will have the identifier
  <code>columnName</code>, which may be null. <code>columnData</code> is the
  optional vector of data for the column. If it is <code>null</code> the column
  is filled with <code>null</code> values. Otherwise, the new data will be
  added to model starting with the first element going to row 0, etc. This
  method will send a <code>tableChanged</code> notification message to all the
  listeners.
  
  @param columnName the identifier of the column being added
  @param columnData optional data of the column being added