code: private void paintBackground(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(1, 0, width - 2, 0);
          g.setColor(colors.leftOuter);
          g.drawLine(0, 0, 0, height - 4);
          g.drawLine(1, height - 3, 1, height - 3);
          g.setColor(colors.leftInner);
          g.drawLine(1, 1, 1, height - 4);
          g.drawLine(2, height - 3, 2, height - 3);
          g.setColor(colors.edge);
          g.drawLine(width - 1, 0, width - 1, height - 2);
          g.drawLine(3, height - 2, width - 2, height - 2);
          g.setColor(colors.edgeShade);
          g.drawLine(2, height - 2, 2, height - 2);
          g.setColor(colors.shadow);
          g.drawLine(4, height - 1, width - 1, height - 1);
          g.setColor(colors.interior);
          g.fillRect(1, 1, width - 1, height - 3);
          g.drawLine(3, height - 3, width - 2, height - 3);
      }
docs: Paint the background of the button using the specified colors.
  
  @param g      the Graphics2D context to paint with.
  @param c      the component.
  @param width  the width of the component.
  @param height the height of the component.
  @param colors the color set to use to paint the button.