tableChanged(new TableModelEvent(dataModel, TableModelEvent.HEADER_ROW));
  public void setModel(TableModel m)  {    // Throw exception is m is null.    if (m == null)      throw new IllegalArgumentException();       // Don't do anything if setting the current model again.    if (dataModel == m)      return;        TableModel oldModel = dataModel;    // Remove table as TableModelListener from old model.    if (dataModel != null)      dataModel.removeTableModelListener(this);        if (m != null)      {        // Set property.        dataModel = m;        // Add table as TableModelListener to new model.        dataModel.addTableModelListener(this);        // Automatically create columns.        if (autoCreateColumnsFromModel)          createDefaultColumnsFromModel();      }        // This property is bound, so we fire a property change event.    firePropertyChange("model", oldModel, dataModel);    // Repaint table.    revalidate();    repaint();  }