private void paintMenu(Graphics2D g,JComponent c,int width,int height,ButtonColors colors){
  g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
  g.setColor(colors.top);
  g.drawLine(0,0,width - 2,0);
  g.setColor(colors.leftOuter);
  g.drawLine(0,0,0,height - 4);
  g.setColor(colors.leftInner);
  g.drawLine(1,1,1,height - 4);
  g.drawLine(2,height - 3,2,height - 3);
  Shape s=decodeInterior(width,height);
  g.setColor(colors.interior);
  g.fill(s);
  s=decodeEdge(width,height);
  g.setColor(colors.edge);
  g.draw(s);
  g.setColor(colors.edgeShade);
  g.drawLine(2,height - 2,2,height - 2);
  g.drawLine(1,height - 3,1,height - 3);
  g.drawLine(0,height - 4,0,height - 4);
  s=decodeShadow(width,height);
  g.setColor(colors.shadow);
  g.draw(s);
  g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
  s=decodeMarkInterior(width,height);
  g.setColor(colors.markInterior);
  g.fill(s);
  s=decodeMarkBorder(width,height);
  g.setColor(colors.markBorder);
  g.draw(s);
}

private void paintMenu ( Graphics2D g , JComponent c , int width , int height , ButtonColors colors ) { g . setRenderingHint ( RenderingHints . KEY_ANTIALIASING , RenderingHints . VALUE_ANTIALIAS_OFF ) ; g . setColor ( colors . top ) ; g . drawLine ( 0 , 0 , width - 2 , 0 ) ; g . setColor ( colors . leftOuter ) ; g . drawLine ( 0 , 0 , 0 , height - 4 ) ; g . setColor ( colors . leftInner ) ; g . drawLine ( 1 , 1 , 1 , height - 4 ) ; g . drawLine ( 2 , height - 3 , 2 , height - 3 ) ; Shape s = decodeInterior ( width , height ) ; g . setColor ( colors . interior ) ; g . fill ( s ) ; s = decodeEdge ( width , height ) ; g . setColor ( colors . edge ) ; g . draw ( s ) ; g . setColor ( colors . edgeShade ) ; g . drawLine ( 2 , height - 2 , 2 , height - 2 ) ; g . drawLine ( 1 , height - 3 , 1 , height - 3 ) ; g . drawLine ( 0 , height - 4 , 0 , height - 4 ) ; s = decodeShadow ( width , height ) ; g . setColor ( colors . shadow ) ; g . draw ( s ) ; g . setRenderingHint ( RenderingHints . KEY_ANTIALIASING , RenderingHints . VALUE_ANTIALIAS_ON ) ; s = decodeMarkInterior ( width , height ) ; g . setColor ( colors . markInterior ) ; g . fill ( s ) ; s = decodeMarkBorder ( width , height ) ; g . setColor ( colors . markBorder ) ; g . draw ( s ) ; }
paint the button using the specified colors .
