Java Graphics Draw Curve drawBevel(Graphics2D g, Rectangle r)

Here you can find the source of drawBevel(Graphics2D g, Rectangle r)

Description

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).

License

Open Source License

Parameter

Parameter Description
g the graphics to paint to.
r the rectangle to paint.

Declaration

public static void drawBevel(Graphics2D g, Rectangle r) 

Method Source Code

//package com.java2s;
/**//from  w w w  .  j  a  va2s.  c  o m
 * This software is released as part of the Pumpernickel project.
 * 
 * All com.pump resources in the Pumpernickel project are distributed under the
 * MIT License:
 * https://raw.githubusercontent.com/mickleness/pumpernickel/master/License.txt
 * 
 * More information about the Pumpernickel project is available here:
 * https://mickleness.github.io/pumpernickel/
 */

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), new Color(255, 255, 255, 100),
            new Color(255, 255, 255, 150) };
    /** Four shades of black, each with increasing opacity. */
    final static Color[] blacks = new Color[] { new Color(0, 0, 0, 50), new Color(0, 0, 0, 100),
            new Color(0, 0, 0, 150) };

    /**
     * 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);
            }
        }
    }
}

Related

  1. drawBevel(Graphics g, Rectangle r)
  2. drawBevel(Graphics2D g, Rectangle r)
  3. drawBezel(Graphics g, int x, int y, int w, int h, boolean isPressed, boolean isDefault, Color shadow, Color darkShadow, Color highlight, Color lightHighlight)
  4. drawBezel(Graphics g, int x, int y, int w, int h, boolean isPressed, boolean isDefault, Color shadow, Color darkShadow, Color highlight, Color lightHighlight)
  5. drawBezel(Graphics g, int x, int y, int width, int height, boolean isPressed, boolean isDefault, Color shadow, Color darkShadow, Color highlight, Color lightHighlight)
  6. drawCurve(Graphics2D g, Point p1, Point p2)