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

#ifndef __javax_swing_JTable$TableColumnPropertyChangeHandler__
#define __javax_swing_JTable$TableColumnPropertyChangeHandler__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace beans
    {
        class PropertyChangeEvent;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class JTable;
        class JTable$TableColumnPropertyChangeHandler;
    }
  }
}

class javax::swing::JTable$TableColumnPropertyChangeHandler : public ::java::lang::Object
{

public: // actually package-private
  JTable$TableColumnPropertyChangeHandler(::javax::swing::JTable *);
public:
  virtual void propertyChange(::java::beans::PropertyChangeEvent *);
public: // actually package-private
  ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JTable$TableColumnPropertyChangeHandler__
