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

#ifndef __javax_swing_plaf_BorderUIResource$TitledBorderUIResource__
#define __javax_swing_plaf_BorderUIResource$TitledBorderUIResource__

#pragma interface

#include <javax/swing/border/TitledBorder.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Color;
        class Font;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace border
      {
          class Border;
      }
      namespace plaf
      {
          class BorderUIResource$TitledBorderUIResource;
      }
    }
  }
}

class javax::swing::plaf::BorderUIResource$TitledBorderUIResource : public ::javax::swing::border::TitledBorder
{

public:
  BorderUIResource$TitledBorderUIResource(::java::lang::String *);
  BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *);
  BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *);
  BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *, jint, jint);
  BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *);
  BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *, ::java::awt::Color *);
private:
  static const jlong serialVersionUID = 7667113547406407427LL;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_BorderUIResource$TitledBorderUIResource__
