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

#ifndef __javax_swing_JOptionPane$ValuePropertyHandler__
#define __javax_swing_JOptionPane$ValuePropertyHandler__

#pragma interface

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

class javax::swing::JOptionPane$ValuePropertyHandler : public ::java::lang::Object
{

public: // actually package-private
  JOptionPane$ValuePropertyHandler(::javax::swing::JDialog *);
public:
  virtual void propertyChange(::java::beans::PropertyChangeEvent *);
public: // actually package-private
  ::javax::swing::JDialog * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dialog;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JOptionPane$ValuePropertyHandler__
