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

#ifndef __javax_swing_JTable$BooleanCellRenderer__
#define __javax_swing_JTable$BooleanCellRenderer__

#pragma interface

#include <javax/swing/table/DefaultTableCellRenderer.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class JCheckBox;
        class JTable;
        class JTable$BooleanCellRenderer;
    }
  }
}

class javax::swing::JTable$BooleanCellRenderer : public ::javax::swing::table::DefaultTableCellRenderer
{

public: // actually package-private
  JTable$BooleanCellRenderer(::javax::swing::JTable *);
  virtual ::javax::swing::JCheckBox * getCheckBox();
public:
  virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint);
private:
  ::javax::swing::JCheckBox * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) checkBox;
public: // actually package-private
  ::javax::swing::JTable * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_JTable$BooleanCellRenderer__
