
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_swing_event_TableColumnModelEvent__
#define __javax_swing_event_TableColumnModelEvent__

#pragma interface

#include <java/util/EventObject.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace event
      {
          class TableColumnModelEvent;
      }
      namespace table
      {
          class TableColumnModel;
      }
    }
  }
}

class javax::swing::event::TableColumnModelEvent : public ::java::util::EventObject
{

public:
  TableColumnModelEvent(::javax::swing::table::TableColumnModel *, jint, jint);
  virtual jint getFromIndex();
  virtual jint getToIndex();
public: // actually protected
  jint __attribute__((aligned(__alignof__( ::java::util::EventObject)))) fromIndex;
  jint toIndex;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_event_TableColumnModelEvent__
