private Rectangle2D drawFill(Graphics2D g2,Rectangle2D area){
  Rectangle2D filledArea=(Rectangle2D)area.clone();
  filledArea=trimMargin(filledArea);
  filledArea=trimBorder(filledArea);
  area=trimPadding(area);
  g2.setPaint(this.fillPaint);
  g2.fill(filledArea);
  drawBorder(g2,filledArea);
  return filledArea;
}

private Rectangle2D drawFill ( Graphics2D g2 , Rectangle2D area ) { Rectangle2D filledArea = ( Rectangle2D ) area . clone ( ) ; filledArea = trimMargin ( filledArea ) ; filledArea = trimBorder ( filledArea ) ; area = trimPadding ( area ) ; g2 . setPaint ( this . fillPaint ) ; g2 . fill ( filledArea ) ; drawBorder ( g2 , filledArea ) ; return filledArea ; }
draws a colored background . returns the area wich has been filled .
