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

#ifndef __javax_swing_Spring$SimpleSpring__
#define __javax_swing_Spring$SimpleSpring__

#pragma interface

#include <javax/swing/Spring.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
        class Spring$SimpleSpring;
    }
  }
}

class javax::swing::Spring$SimpleSpring : public ::javax::swing::Spring
{

public:
  ::java::lang::String * toString();
  Spring$SimpleSpring(jint, jint, jint);
  jint getMaximumValue();
  jint getMinimumValue();
  jint getPreferredValue();
  jint getValue();
  void setValue(jint);
private:
  jint __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) min;
  jint pref;
  jint max;
  jint value;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_Spring$SimpleSpring__
