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

#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$PropertyChangeHandler__
#define __javax_swing_plaf_basic_BasicOptionPaneUI$PropertyChangeHandler__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace beans
    {
        class PropertyChangeEvent;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace basic
        {
            class BasicOptionPaneUI;
            class BasicOptionPaneUI$PropertyChangeHandler;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicOptionPaneUI$PropertyChangeHandler : public ::java::lang::Object
{

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

#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$PropertyChangeHandler__
