public void paintBorder(Component c,Graphics g,int x,int y,int width,int height){
  if ((this.thickness > 0) && (g instanceof Graphics2D)) {
    Graphics2D g2d=(Graphics2D)g;
    Color oldColor=g2d.getColor();
    g2d.setColor(this.lineColor);
    Shape outer;
    Shape inner;
    int offs=this.thickness;
    int size=offs + offs;
    if (this.roundedCorners) {
      float arc=.2f * offs;
      outer=new RoundRectangle2D.Float(x,y,width,height,offs,offs);
      inner=new RoundRectangle2D.Float(x + offs,y + offs,width - size,height - size,arc,arc);
    }
 else {
      outer=new Rectangle2D.Float(x,y,width,height);
      inner=new Rectangle2D.Float(x + offs,y + offs,width - size,height - size);
    }
    Path2D path=new Path2D.Float(Path2D.WIND_EVEN_ODD);
    path.append(outer,false);
    path.append(inner,false);
    g2d.fill(path);
    g2d.setColor(oldColor);
  }
}

public void paintBorder ( Component c , Graphics g , int x , int y , int width , int height ) { if ( ( this . thickness > 0 ) && ( g instanceof Graphics2D ) ) { Graphics2D g2d = ( Graphics2D ) g ; Color oldColor = g2d . getColor ( ) ; g2d . setColor ( this . lineColor ) ; Shape outer ; Shape inner ; int offs = this . thickness ; int size = offs + offs ; if ( this . roundedCorners ) { float arc = .2f * offs ; outer = new RoundRectangle2D . Float ( x , y , width , height , offs , offs ) ; inner = new RoundRectangle2D . Float ( x + offs , y + offs , width - size , height - size , arc , arc ) ; } else { outer = new Rectangle2D . Float ( x , y , width , height ) ; inner = new Rectangle2D . Float ( x + offs , y + offs , width - size , height - size ) ; } Path2D path = new Path2D . Float ( Path2D . WIND_EVEN_ODD ) ; path . append ( outer , false ) ; path . append ( inner , false ) ; g2d . fill ( path ) ; g2d . setColor ( oldColor ) ; } }
paints the border for the specified component with the specified position and size .
