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

#ifndef __java_awt_CheckboxGroup__
#define __java_awt_CheckboxGroup__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Checkbox;
        class CheckboxGroup;
    }
  }
}

class java::awt::CheckboxGroup : public ::java::lang::Object
{

public:
  CheckboxGroup();
  virtual ::java::awt::Checkbox * getSelectedCheckbox();
  virtual ::java::awt::Checkbox * getCurrent();
  virtual void setSelectedCheckbox(::java::awt::Checkbox *);
  virtual void setCurrent(::java::awt::Checkbox *);
  virtual ::java::lang::String * toString();
private:
  static const jlong serialVersionUID = 3729780091441768983LL;
  ::java::awt::Checkbox * __attribute__((aligned(__alignof__( ::java::lang::Object)))) selectedCheckbox;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_CheckboxGroup__
