1 /***
2 * Copyright (c) 2003 held jointly by the individual authors.
3 *
4 * This library is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License as published
6 * by the Free Software Foundation; either version 2.1 of the License, or
7 * (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; with out even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this library; if not, write to the Free Software Foundation,
16 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17 *
18 * > http://www.gnu.org/copyleft/lesser.html
19 * > http://www.opensource.org/licenses/lgpl-license.php
20 */
21 package net.mlw.gfw.ext;
22
23 import java.awt.Color;
24 import java.awt.FontMetrics;
25 import java.awt.Graphics;
26
27 /***
28 * @author Matthew L. Wilson
29 * @version $Revision: 1.2 $ $Date: 2004/06/29 20:33:03 $
30 */
31 public class PaintUtils
32 {
33 public static void drawVerticalString(Graphics b, Color background, String text, int x, int y)
34 {
35 if (text == null || text.length() == 0)
36 {
37 return;
38 }
39
40 int maxwidth = 0;
41 char[] chars = text.toCharArray();
42 int[] widths = new int[chars.length];
43 String[] strings = new String[chars.length];
44 FontMetrics fontMetrics = b.getFontMetrics();
45
46 int length = widths.length;
47
48 //Get the max width of a char.
49 for (int i = 0; i < length; i++)
50 {
51 if ((widths[i] = fontMetrics.stringWidth(strings[i] = String.valueOf(chars[i]))) > maxwidth)
52 {
53 maxwidth = widths[i];
54 }
55 }
56
57 b.setColor(background);
58 b.fillRect(x, y - (((fontMetrics.getHeight() / 2) * length)+fontMetrics.getHeight() ), 10, fontMetrics.getHeight()*length+5);
59 b.setColor(Color.BLACK);
60
61 for (int i = 0; i < length; i++)
62 {
63 b.drawString(strings[i], x + (int) ((maxwidth - widths[i]) / 2), y + (fontMetrics.getHeight() * i) - (((fontMetrics.getHeight() / 2) * length)));
64 }
65 }
66 }
This page was automatically generated by Maven