public enum HAlign { Left, Right, Center }

public enum VAlign { Top, Middle, Bottom }

/**
 * Draw a string with horizontal and vertical alignment.
 *
 * @author Ian Obermiller <ian.obermiller@mu.edu>
 * @date   01/30/2009
 *
 */
public static void drawString(Graphics2D g2, String text, int x, int y, HAlign hAlign, VAlign vAlign)
{
	Font myFont = new Font("Verdana", Font.PLAIN, 11);
	FontMetrics myFontMetrics = g2.getFontMetrics(myFont);

	int w = myFontMetrics.stringWidth(text);
	int h = myFontMetrics.getHeight();

	switch (hAlign)
	{
		case Center:
			x -= w / 2;
			break;
		case Right:
			x -= w;
			break;
	}
	
	switch (vAlign)
	{
		case Middle:
			y += h / 2;
			break;
		case Top:
			y += h;
			break;
	}
	
	g2.setFont(myFont);
	g2.drawString(text, x, y - 2);
}