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

#ifndef __javax_swing_JTable$IconCellRenderer__
#define __javax_swing_JTable$IconCellRenderer__

#pragma interface

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

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

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

#endif // __javax_swing_JTable$IconCellRenderer__
