public static void drawRound3DBorder(Graphics g, Color c1, Color c2, int x, int y, int w, int h) { Graphics2D g2D = (Graphics2D) g; int x2 = x + w; int y2 = y + h; int d = h; int r = h / 2; Color cm = ColorHelper.median(c1, c2); Color c1m = ColorHelper.median(c1, cm); Color c2m = ColorHelper.median(c2, cm); Object savedRederingHint = g2D.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // oben g2D.setColor(c1); g2D.drawLine(x + r, y, x2 - r, y); // rechts g2D.drawLine(x, y + r, x, y2 - r); // unten g2D.setColor(c2); g2D.drawLine(x + r, y2, x2 - r, y2); // links g2D.drawLine(x2, y + r, x2, y2 - r); // links g2D.setColor(c1); g2D.drawArc(x, y, d, d, 90, 45); g2D.setColor(c1m); g2D.drawArc(x, y, d, d, 135, 45); g2D.setColor(cm); g2D.drawArc(x, y, d, d, 180, 45); g2D.setColor(c2m); g2D.drawArc(x, y, d, d, 225, 45); // rechts g2D.setColor(c1m); g2D.drawArc(x2 - d, y, d, d, 45, 45); g2D.setColor(cm); g2D.drawArc(x2 - d, y, d, d, 0, 45); g2D.setColor(c2m); g2D.drawArc(x2 - d, y, d, d, -45, 45); g2D.setColor(c2); g2D.drawArc(x2 - d, y, d, d, -90, 45); g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, savedRederingHint); }