Here you can find the source of drawBevel(Graphics2D g, Rectangle r)
Parameter | Description |
---|---|
g | the graphics to paint to. |
r | the rectangle to paint. |
public static void drawBevel(Graphics2D g, Rectangle r)
//package com.java2s; /*//from w w w . jav a 2s . co m * @(#)PaintUtils.java * * $Date: 2010-01-03 07:20:54 -0600 (Sun, 03 Jan 2010) $ * * Copyright (c) 2009 by Jeremy Wood. * All rights reserved. * * The copyright of this software is owned by Jeremy Wood. * You may not use, copy or modify this software, except in * accordance with the license agreement you entered into with * Jeremy Wood. For details see accompanying license terms. * * This software is probably, but not necessarily, discussed here: * http://javagraphics.blogspot.com/ * * And the latest version should be available here: * https://javagraphics.dev.java.net/ * * --- * * Modifications by Florian Sonner for the usage in GeoGebra: * - stripped out unused methods * - uses just one bevel color now */ import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.SwingConstants; public class Main { /** Four shades of white, each with increasing opacity. */ final static Color[] whites = new Color[] { new Color(255, 255, 255, 50) }; /** Four shades of black, each with increasing opacity. */ final static Color[] blacks = new Color[] { new Color(0, 0, 0, 50) }; /** Uses translucent shades of white and black to draw highlights * and shadows around a rectangle, and then frames the rectangle * with a shade of gray (120). * <P>This should be called to add a finishing touch on top of * existing graphics. * @param g the graphics to paint to. * @param r the rectangle to paint. */ public static void drawBevel(Graphics2D g, Rectangle r) { g.setStroke(new BasicStroke(1)); drawColors(blacks, g, r.x, r.y + r.height, r.x + r.width, r.y + r.height, SwingConstants.SOUTH); drawColors(blacks, g, r.x + r.width, r.y, r.x + r.width, r.y + r.height, SwingConstants.EAST); drawColors(whites, g, r.x, r.y, r.x + r.width, r.y, SwingConstants.NORTH); drawColors(whites, g, r.x, r.y, r.x, r.y + r.height, SwingConstants.WEST); g.setColor(new Color(120, 120, 120)); g.drawRect(r.x, r.y, r.width, r.height); } private static void drawColors(Color[] colors, Graphics g, int x1, int y1, int x2, int y2, int direction) { for (int a = 0; a < colors.length; a++) { g.setColor(colors[colors.length - a - 1]); if (direction == SwingConstants.SOUTH) { g.drawLine(x1, y1 - a, x2, y2 - a); } else if (direction == SwingConstants.NORTH) { g.drawLine(x1, y1 + a, x2, y2 + a); } else if (direction == SwingConstants.EAST) { g.drawLine(x1 - a, y1, x2 - a, y2); } else if (direction == SwingConstants.WEST) { g.drawLine(x1 + a, y1, x2 + a, y2); } } } }