g2.setColor(color.topColor);
g2.setColor(bcolor.topColor());
    private static void paintSolid(final Graphics2D g2, final Rectangle bounds, final Border border, final BorderColor color, final int sides, int currentSide) {        //Bug in polygon painting paints an extra pixel to the right and bottom        //But clipping works fine!        Polygon poly = getBevelledPolygon(bounds, border, sides, currentSide, false);        //Shape old_clip = g2.getClip();        //if (poly != null) g2.clip(poly);        if (currentSide == TOP) {            g2.setColor(color.topColor);            // draw a 1px border with a line instead of a polygon            if (border.top == 1) {                g2.drawLine(bounds.x, bounds.y, bounds.x + bounds.width - 1, bounds.y);            } else {                // use polygons for borders over 1px wide                g2.fillPolygon(poly);            }        } else if (currentSide == BOTTOM) {            g2.setColor(color.bottomColor);            if (border.bottom == 1) {                g2.drawLine(bounds.x, bounds.y + bounds.height - 1,                        bounds.x + bounds.width - 1, bounds.y + bounds.height - 1);            } else {                g2.fillPolygon(poly);            }        } else if (currentSide == RIGHT) {            g2.setColor(color.rightColor);            if (border.right == 1) {                g2.drawLine(bounds.x + bounds.width - 1, bounds.y,                        bounds.x + bounds.width - 1, bounds.y + bounds.height - 1);            } else {                g2.fillPolygon(poly);            }        } else if (currentSide == LEFT) {            g2.setColor(color.leftColor);            if (border.left == 1) {                g2.drawLine(bounds.x, bounds.y,                        bounds.x, bounds.y + bounds.height - 1);            } else {                g2.fillPolygon(poly);            }        }        //g2.setClip(old_clip);    }